Android自定义View画圆功能
发布时间 - 2026-01-11 03:29:28 点击率:次本文实例为大家分享了Android自定义View画圆的具体代码,供大家参考,具体内容如下

引入布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bwie.test.xuejian1508a20170928.MainActivity"> <com.bwie.test.xuejian1508a20170928.ViView android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
自定义View的java类,继承View
public class ViView extends View{
Paint paint;
Context context;
//构造方法
public ViView(Context context) {
super(context);
}
public ViView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ViView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public ViView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
this.context=context;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
/*绘图*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//得到屏幕宽高
int width = getWidth();
int radius = width - 450/2;
int height = getHeight();
// 创建画笔
Paint paint1 = new Paint();
Paint paint2 = new Paint();
Paint paint3= new Paint();
// 消除锯齿
paint1.setAntiAlias(true);
paint2.setAntiAlias(true);
paint3.setAntiAlias(true);
//画笔颜色
paint1.setColor(Color.RED);
paint2.setColor(Color.WHITE);
paint3.setColor(Color.BLUE);
// 画圆。确定位置
// canvas.drawRect(100,100,width/2,height/2,paint1);
// canvas.drawCircle(100,100,100,paint1);
// canvas.drawCircle(250,250,200,paint2);
// canvas.drawCircle(500,500,300,paint3);
//设置圆环形状和大小
RectF oval = new RectF(width-radius,width-radius,width+radius,width+radius);
paint1.setStrokeWidth(450);
canvas.drawArc(oval,-90,90,false,paint1);
canvas.drawCircle(width/2,height/2,450,paint1);
canvas.drawCircle(width/2,height/2,300,paint2);
canvas.drawCircle(width/2,height/2,200,paint3);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
}
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# View
# 画圆
# 利用Android画圆弧canvas.drawArc()实例详解
# Android自定view画圆效果
# Android自定义组件跟随自己手指主动画圆
# Android项目实战手把手教你画圆形水波纹loadingview
# Android圆形控件实现画圆效果
# 自定义
# 大家分享
# 具体内容
# 大家多多
# paddingRight
# activity_horizontal_margin
# paddingLeft
# bwie
# context
# paddingTop
# activity_vertical_margin
# match_parent
# layout_width
# activity_main
# dimen
# paddingBottom
# layout_height
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
浅析上传头像示例及其注意事项
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel如何实现一对一模型关联?(Eloquent示例)
如何在IIS中新建站点并解决端口绑定冲突?
js实现点击每个li节点,都弹出其文本值及修改
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
如何在Windows环境下新建FTP站点并设置权限?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
JS碰撞运动实现方法详解
奇安信“盘古石”团队突破 iOS 26.1 提权
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
如何正确选择百度移动适配建站域名?
网站制作报价单模板图片,小松挖机官方网站报价?
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
如何彻底删除建站之星生成的Banner?
如何在建站宝盒中设置产品搜索功能?
什么是javascript作用域_全局和局部作用域有什么区别?
如何在IIS管理器中快速创建并配置网站?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
简单实现Android文件上传
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
如何快速搭建安全的FTP站点?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
如何快速选择适合个人网站的云服务器配置?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
公司门户网站制作流程,华为官网怎么做?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
Linux系统命令中tree命令详解
如何快速上传建站程序避免常见错误?
使用spring连接及操作mongodb3.0实例
香港服务器WordPress建站指南:SEO优化与高效部署策略
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何批量查询域名的建站时间记录?
如何快速搭建高效WAP手机网站?
JavaScript常见的五种数组去重的方式
Laravel如何配置任务调度?(Cron Job示例)
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解

