Android自定义View圆形和拖动圆跟随手指拖动

Android自定义View圆形和拖动圆跟随手指拖动,第1张

概述单纯的自定义一个圆非常简单只需要几步就完成拖动圆添加实现触摸事件即可

单纯的自定义一个圆非常简单 只需要几步就完成 拖动圆添加实现触摸事件即可

我在第一次自定义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类的名字:

 <ydtx.bwIE.com.xiangmu_project02.CustomVIEw    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent" />

一个圆就这样创建好了 直接运行就可以了 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,创建    //如果圆形出不来 说明你xml里定义的宽和高的空间不够大 这里是圆在屏幕的坐标位置 xml定义的是圆能够显示的区域 如果你定义的太小 圆的坐标又超过了这个区域 就会显示不出来 xml里定义宽和高充满屏幕就可以了     canvas.drawCircle(point.x,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圆形和拖动圆跟随手指拖动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1143836.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存