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

我在第一次自定义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类的名字:
<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, 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
# 圆形
# 拖动
# Android实现ImageView图片缩放和拖动
# Android实现跟随手指拖动并自动贴边的View样式(实例demo)
# Android自定义View实现拖动选择按钮
# Android实现单页面浮层可拖动view的一种方法
# Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码
# Android开发实现可拖动排序的ListView功能【附源码下载】
# Android DragImageView实现下拉拖动图片放大效果
# Android RecyclerView滑动删除和拖动排序
# Android ViewDragHelper仿淘宝拖动加载效果
# android实现可拖动的浮动view
# 自定义
# 我在
# 创建一个
# 小编
# 就好了
# 几个
# 就会
# 如果你
# 好了
# 就像
# 有可能
# 在此
# 只会
# 用了
# 给大家
# 只需要
# 几步
# 报错
# 它能
相关文章:
建站上传速度慢?如何优化加速网站加载效率?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
建设网站制作价格,怎样建立自己的公司网站?
英语简历制作免费网站推荐,如何将简历翻译成英文?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
h5在线制作网站电脑版下载,h5网页制作软件?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何通过建站之星自助学习解决操作问题?
建站之星代理平台如何选择最佳方案?
建站之星×万网:智能建站系统+自助建站平台一键生成
北京企业网站设计制作公司,北京铁路集团官方网站?
如何用VPS主机快速搭建个人网站?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何在Windows服务器上快速搭建网站?
安云自助建站系统如何快速提升SEO排名?
如何用腾讯建站主机快速创建免费网站?
海南网站制作公司有哪些,海口网是哪家的?
如何在橙子建站上传落地页?操作指南详解
建站VPS推荐:2025年高性能服务器配置指南
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
微课制作网站有哪些,微课网怎么进?
建站之星好吗?新手能否轻松上手建站?
建站之星安装步骤有哪些常见问题?
香港服务器WordPress建站指南:SEO优化与高效部署策略
全景视频制作网站有哪些,全景图怎么做成网页?
如何通过FTP服务器快速搭建网站?
如何制作网站标识牌,动态网站如何制作(教程)?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
上海网站制作开发公司,上海买房比较好的网站有哪些?
,想在网上投简历,哪几个网站比较好?
广州美橙建站如何快速搭建多端合一网站?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
深圳网站制作案例,网页的相关名词有哪些?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
高防服务器租用指南:配置选择与快速部署攻略
建站主机解析:虚拟主机配置与服务器选择指南
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
小程序网站制作需要准备什么资料,如何制作小程序?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
建站之星代理如何获取技术支持?
青岛网站建设如何选择本地服务器?
网站制作软件有哪些,制图软件有哪些?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
香港服务器如何优化才能显著提升网站加载速度?
网站企业制作流程,用什么语言做企业网站比较好?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
*请认真填写需求信息,我们会在24小时内与您取得联系。