android 自定义控件 属性配置

需要在res/value/下常见attrs.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="MyView">
        <attr name="bgColor" format="color" />
        <attr name="progress" format="integer" />
         <attr name="borderWidth" format="dimension" />
    </declare-styleable>
</resources>

自定义控件使用

class MyView @JvmOverloads constructor(
    context: Context?,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : View(
    context,
    attrs,
    defStyleAttr
) {

    private var bgColor:Int = 0
    private var progress:Int = 0
    private var borderWidth:Int = 0

    init {
        val typedArray =
            context?.obtainStyledAttributes(attrs, R.styleable.DashboardView, defStyleAttr, 0)
        bgColor = typedArray?.getColor(R.styleable.MyView_bgColor,R.color.black) ?: R.color.black
        progress = typedArray?.getInt(R.styleable.MyView_progress, 10) ?: 10 
        borderWidth = typedArray?.getDimensionPixelSize(R.styleable.MyView_borderWidth,2) ?: 2
        //使用完以后销毁    
        typedArray?.recycle()
    }
    
}

 

posted @ 2020-08-03 10:43  荣超  阅读(207)  评论(0编辑  收藏  举报