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.

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

被折叠的 条评论
为什么被折叠?



