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

相关推荐
传奇开心果编程2 小时前
【Jetpack Compose娓娓道来】 第25课:ViewModel就是UI界面的大脑
android·kotlin·移动开发·jetpack compose·编程语言理论·编程框架·声明式ui
马立杰2 小时前
PHP 未授权 RCE 应急响应:CVE-2026-109618 CVE-2026-109619 排查与加固实战
android·开发语言·php
NamoAmitabha1282 小时前
安装“编译器环境”(Android Studio)--deepseek--Cocos --Creator3.8.8
android·ide·android studio
聚美智数3 小时前
文档转换 API‑文档转 PDF‑PDF 转文档‑异步文档处理‑文件格式迁移‑转换结果回调推送 API 接口介绍
android·java·pdf
booboosui4 小时前
Android 上的无人回合:只放开 2 类工具,宁可空手
android
事圆则缓5 小时前
Android 性能排查实战:怎么看内存抖动、CPU 占用和 FPS
android
mmsx6 小时前
Android 三类「看着无关」的故障:大事务、UI 阻塞与 ViewModel 作用域
android·ui
换元不配限6 小时前
Android 休眠与唤醒完全指南:从手机到 IoT 设备的实战解析
android·物联网·智能手机·alarmmanager·wakelock·workmanager·休眠和唤醒
通信侠7 小时前
android 16触摸提示音Back虚拟按键无声
android