Android 自定义竖直的虚线

Kotlin 复制代码
/**
 * 竖直虚线
 */
class VerticalDashedLineView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null
) : View(context, attrs) {

    private val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
        color = Color.parseColor("#AAAAAA")
        strokeWidth = 1f * resources.displayMetrics.density
        style = Paint.Style.STROKE
        pathEffect = android.graphics.DashPathEffect(
            floatArrayOf(
                4f * resources.displayMetrics.density,
                3f * resources.displayMetrics.density
            ),
            0f
        )
    }

    override fun onDraw(canvas: Canvas) {
        super.onDraw(canvas)

        val x = width / 2f
        canvas.drawLine(x, 0f, x, height.toFloat(), paint)
    }
}

使用:

Kotlin 复制代码
<com.xx.xx.widget.VerticalDashedLineView
            android:layout_width="1dp"
            android:layout_height="200dp"
            />

strokeWidth 虚线粗细 1dp

dashWidth 每段实线长度 4dp

dashGap 每段之间的间距 3dp

layout_height 虚线高度 100dp

相关推荐
传奇开心果编程6 小时前
【Flutter踩坑排雷】第25课:ScrollController 误用坑|跳转失效、监听泄漏与“控制器未附加”
android·flutter·ios·移动开发·跨平台·dart·声明式ui
慕容雪_10 小时前
Capacitor8-Android打包完整手册
android·打包·capacitor
阿杰m14 小时前
Android源码第十三章:Bluetooth——沿一次发现走到控制器
android
booboosui14 小时前
派活给另一个 AI:前后两次文件夹快照,就是交付清单
android
普通人619 小时前
MySQL_FIND_IN_SET函数详解
android·数据库·mysql
好的佩奇1 天前
Dart 之集合元素
android·flutter·dart
Easyhood1 天前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
FlightYe1 天前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
疯华整猫1 天前
删掉 LeakCanary 那天,我用 Trae 自己撸了一套:最难的不是分析堆,是决定什么时候 dump
android·人工智能·性能优化
mmsx2 天前
耳切法切带洞多边形:论文能跑通,真实数据为什么崩
android·kotlin