Android怎么实现圆形和拖动圆跟随手指拖动
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"Android怎么实现圆形和拖动圆跟随手指拖动"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android怎么实现圆形和拖动圆跟随手指拖动"
千家信息网最后更新 2025年01月19日Android怎么实现圆形和拖动圆跟随手指拖动
这篇文章主要介绍"Android怎么实现圆形和拖动圆跟随手指拖动"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android怎么实现圆形和拖动圆跟随手指拖动"文章能帮助大家解决问题。
单纯的自定义一个圆非常简单 只需要几步就完成 拖动圆添加实现触摸事件即可
我在第一次自定义View圆遇到的小问题:
1.拖动圆的话在xml里面设置的自定义圆的宽和高是它能活动的空间的大小 不是圆控件的大小 如果你定义了100dp 拖动它的时候超过100dp这个距离这个圆就会看不见 就像下面这样 如果想活动于整个屏幕直接给宽和高match_parent属性就好了
2.在布局里自定的view会提示编译 点击Build编译一下就好了
下面开始写代码: 先是单纯的创建一个圆形 创建一个类继承View 实现onDraw方法
public class CustomView extends View { //创建point对象 参数为x坐标和y坐标 private PointF point = new PointF(100, 100); public CustomView(Context context) { super(context); } public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public CustomView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //参数为圆的横坐标 ,纵坐标,半径,创建 //如果圆形出不来 说明你xml里定义的宽和高的空间不够大 这里是圆在屏幕的坐标位置 xml定义的是圆能够显示的区域 如果你定义的太小 圆的坐标又超过了这个区域 就会显示不出来 xml里定义宽和高充满屏幕就可以了 canvas.drawCircle(point.x,point.y, 50, new Paint()); }}
XML里、自己定义的view类的名字:
一个圆就这样创建好了 直接运行就可以了 ManActivity里什么也不用改
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
下面是添加拖动圆的功能 非常简单 实现触摸监听即可 代码非常少 如下:
public class CustomView extends View { //创建point对象 参数为x坐标和y坐标 private PointF point = new PointF(100, 100); public CustomView(Context context) { super(context); } public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public CustomView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //参数为圆的横坐标 ,纵坐标,半径,创建 //如果圆形出不来 说明你xml里定义的宽和高的空间不够大 这里是圆在屏幕的坐标位置 xml定义的是圆能够显示的区域 如果你定义的太小 圆的坐标又超过了这个区域 就会显示不出来 xml里定义宽和高充满屏幕就可以了 canvas.drawCircle(point.x,point.y, 50, new Paint()); } //触摸事件 @Override public boolean onTouchEvent(MotionEvent event) { //获得触摸事件 switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; //ACTION_MOVE不要设置break,否则圆形不会跟随手指活动 只会手指松开屏幕的时候圆形直接到了屏幕停止的位置 case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_UP: //获取手指触摸位置的x坐标 point.x = event.getX(); //获取手指触摸位置的y坐标 point.y = event.getY(); //启动 postInvalidate(); break; } return true; }}
关于"Android怎么实现圆形和拖动圆跟随手指拖动"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
坐标
圆形
手指
屏幕
位置
区域
参数
事件
知识
空间
活动
不够
代码
半径
大小
对象
方法
时候
横坐标
纵坐标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东通用服务器多少钱
网络安全技术与工程是网络工程吗
连接jsp服务器超时
数据库应用技术如何备份
vps虚拟主机服务器
定位软件开发
网络安全教育会议的主要内容
哪些网络技术可以实现在线学习
网络安全工作考核责任制
玻璃服务器是什么情况
安卓虚拟拨号软件开发
派出所组织民警网络安全
南京安卓软件开发收费多少
新服务器装不上2012的系统
读写权限数据库设计
链接sql数据库ip写发
微信公众号数据库是干什么的
江西综合网络技术咨询口碑推荐
美信网络技术有效公司
云数据库怎么测试呢
asv服务器虚拟化管理系统
网络安全绕口令五句
杭州手机软件开发哪家有名
dlna服务器
宁波应用软件开发管理
广东科技学院计算机网络技术
吉林省国家网络安全法
无锡互联网智能科技产品是什么
数据库怎么看已建表
机柜的单板是服务器