Android自定义View圆形和拖动圆、跟随手指拖动效果 Android自定义View圆形和拖动圆、跟随手指拖动效果是一种常见的UI效果,在Android开发中非常重要,本文将详细介绍如何自定义一个圆形和拖动圆、跟随手指拖动效果。 一、自定义圆形 自定义一个圆非常简单,只需要创建一个类继承View并实现onDraw方法,代码如下: ```java 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类: ```xml <ydtx.bwie.com.xiangmu_project02.CustomView android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 二、拖动圆的实现 要实现拖动圆的效果,我们需要在自定义的View类中添加触摸事件的监听,代码如下: ```java @Override public boolean onTouchEvent(MotionEvent event) { //获得触摸事件 switch (event.getAction()) { case MotionEvent.ACTION_DOWN: //按下事件 break; case MotionEvent.ACTION_MOVE: //移动事件 break; case MotionEvent.ACTION_UP: //抬起事件 break; } return true; } ``` 在上面的代码中,我们可以根据不同的触摸事件来实现拖动圆的效果,例如在ACTION_MOVE事件中,我们可以更改圆的位置来实现拖动效果。 三、常见的Bug解决方案 在自定义View时,我们可能会遇到一些Bug,例如在xml文件中设置的自定义圆的宽和高是它能活动的空间的大小,而不是圆控件的大小。如果我们定义了100dp的宽和高,那么拖动圆超过100dp这个距离时,圆就会消失。解决这个问题可以使用match_parent属性,例如: ```xml <ydtx.bwie.com.xiangmu_project02.CustomView android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 自定义View圆形和拖动圆、跟随手指拖动效果是非常有用的UI效果,在Android开发中非常重要。通过本文,我们可以学习如何自定义一个圆形和拖动圆、跟随手指拖动效果,并了解如何解决常见的Bug。
- 粉丝: 4
- 资源: 874
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助