Android kotlin 自定义View 继承ProgressBar 圆形加载设置圆圈线条大小
要实现自定义的圆形加载ProgressBar,可以继承ProgressBar类,并重写onDraw方法来绘制圆形加载效果。
首先,在res/drawable文件夹下创建一个xml文件,命名为circle_progress.xml,用于设置ProgressBar的样式:
<shape
android:shape="ring"
android:thickness="8dp"
android:useLevel="true">
<solid android:color="@color/colorAccent"/>
</shape>
在自定义的ProgressBar类中,重写onDraw方法来绘制圆形加载效果:
class CircleProgressBar(context: Context, attrs: AttributeSet) : ProgressBar(context, attrs) {
private val paint: Paint = Paint()
init {
paint.color = Color.BLUE // 设置圆圈的颜色
paint.style = Paint.Style.STROKE // 设置画笔的样式为描边
paint.strokeWidth = 8f // 设置圆圈线条的大小
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val radius = width / 2f - paint.strokeWidth / 2f // 计算圆圈的半径
val centerX = width / 2f // 圆心的x坐标
val centerY = height / 2f // 圆心的y坐标
canvas.drawCircle(centerX, centerY, radius, paint) // 绘制圆圈
}
}
使用时,在布局文件中添加CircleProgressBar:
<com.example.CircleProgressBar
android:layout_width="100dp"
android:layout_height="100dp"
android:indeterminateDrawable="@drawable/circle_progress" />
这样就可以实现一个继承ProgressBar的自定义圆形加载View,并通过设置圆圈线条的大小来控制圆圈的宽度。
原文地址: https://www.cveoy.top/t/topic/i3eh 著作权归作者所有。请勿转载和采集!