Android怎么自定义View圆形和拖动圆实现跟随手指拖动效果
发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,这篇文章主要介绍了Android怎么自定义View圆形和拖动圆实现跟随手指拖动效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么自定义View圆形和拖动
千家信息网最后更新 2024年12月03日Android怎么自定义View圆形和拖动圆实现跟随手指拖动效果
这篇文章主要介绍了Android怎么自定义View圆形和拖动圆实现跟随手指拖动效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么自定义View圆形和拖动圆实现跟随手指拖动效果文章都会有所收获,下面我们一起来看看吧。
我在第一次自定义View圆遇到的几个Bug:
1.拖动圆的话在xml里面设置的自定义圆的宽和高是它能活动的空间的大小 不是圆控件的大小 如果你定义了100dp 拖动它的时候超过100dp这个距离这个圆就会看不见 就像下面这样 如果想活动于整个屏幕直接给宽和高match_parent
属性就好了
2.我在定义充满属性match_parent
的时候运行会报错,什么方法都用了就是不行,耐心等待过一会就好了…有可能是studio没来得及编译过来
下面开始写代码: 先是单纯的创建一个圆形 创建一个类继承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); //参数为圆的横坐标 ,纵坐标,半径,创建 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); //参数为圆的横坐标 ,纵坐标,半径,创建 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怎么自定义View圆形和拖动圆实现跟随手指拖动效果"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Android怎么自定义View圆形和拖动圆实现跟随手指拖动效果"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
手指
圆形
坐标
效果
参数
位置
屏幕
时候
知识
活动
事件
代码
内容
半径
大小
对象
属性
方法
横坐标
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于互联网科技的提问
教师招聘之网络技术试卷
2018年网络安全宣传周
湖北惠普服务器维修维保费用
mfc操作sql数据库
日本防卫产业网络安全对策
梦达搭建数据库
ios软件开发工程师好不好
科技公司就是互联网公司吗
数据库为什么是信息系统的基础
汽车相关软件开发公司
广东惠普服务器续保维护
数据库安全属于应用安全
网络安全贯穿全程原则
导航条下载软件开发
服务器如何不让玩家破坏东西
任丘市黑鲨软件开发工作室
江苏数据网络技术分类优势
网络技术大师
青岛三只猫网络技术
如何维护网站服务器安全
多少次访问能把服务器崩溃
羽毛球管理系统数据库
数据库技术与应用探索
软件开发资质代办
fm21数据库怎么开
网络安全CA指的
济南考试软件开发
计算机网络网络安全
综评显示无法连接服务器