Android自定义控件 仪表盘

这篇博客介绍了如何在Android中自定义一个汽车仪表盘控件,详细阐述了从布局文件设置到画大弧、刻度和指针的步骤。通过自定义View,利用画弧线、PathDashPathEffect绘制刻度,并使用三角函数计算指针的终点坐标,最终实现了完整的仪表盘效果。

Android 自定义View 汽车仪表盘
先上图
在这里插入图片描述
步骤:
一、自定义DashBoard 继承View,布局文件全类目写自定义view
二、画大弧
三、画刻度
四、画指针

详解:
一、

public class DashBoard extends View`

布局文件

<myview.DashBoard
        android:id="@+id/dashview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

二、
定义大弧的缺口角度和半径

private static final int ANGLE = 120;//仪表盘 缺口 弧度
private static final float RADIUS = Utils.dp2px(150);//半径

画弧线需要定义弧线的矩形

在onDraw方法里
//----画弧线----
        //画弧  useCenter 是否往圆心里画 false就是只画弧线
        canvas.drawArc(getWidth()/2 -RADIUS, getHeight()/2 - RADIUS, getWidth()/2 + RADIUS, getHeight()/2 +RADIUS,
                90 + ANGLE/2, 360 - ANGLE, false, paint);


在这里插入图片描述
三、画刻度
每一个刻度实际上就是一个小矩形。
通过PathDashPathEffect 画刻度。
在这里插入图片描述
每一个刻度有自己单独的坐标

Path dash = new Path();//刻度
dash.addRect(0, 0, Utils.dp2px(2), Utils.dp2px(10), Path.Direction.CW);//每个分割点就是一个矩形,最后一个参数是顺时针

//计算总弧形长度 算出平均间隔
        PathMeasure pathMeasure = new PathMeasure(arc, false);//是否闭合
        //参数1 刻度本体。 参数2 间隔距离(弧形长度 - 刻度的厚度  然后平均分20分)。参数3 起始第一个距离开头。 参数4 旋转类型
        effect = new PathDashPathEffect(dash, (pathMeasure.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值