• 支持圆角的TextView


    class CusRoundTextView @JvmOverloads constructor(
        context: Context,
        attrs: AttributeSet? = null,
        defStyleAttr: Int = 0
    ) :
        AppCompatTextView(context, attrs, defStyleAttr) {
        var rtvBorderWidth: Int = 0
        var rtvBorderColor: Int = Color.BLACK
        var rtvRadius: Float = 0f
        var rtvBgColor: Int = Color.WHITE
    
        init {
            val attributes = context.theme.obtainStyledAttributes(
                attrs,
                R.styleable.CusRoundTextView,
                defStyleAttr,
                0
            )
            if (attributes != null) {
                rtvBorderWidth =
                    attributes.getDimensionPixelSize(R.styleable.CusRoundTextView_rtvBorderWidth, 0)
                rtvBorderColor =
                    attributes.getColor(R.styleable.CusRoundTextView_rtvBorderColor, Color.BLACK)
                rtvRadius = attributes.getDimension(R.styleable.CusRoundTextView_rtvRadius, 0f)
                rtvBgColor = attributes.getColor(R.styleable.CusRoundTextView_rtvBgColor, Color.WHITE)
                attributes.recycle()
                drawBg()
            }
        }
    
        private fun drawBg() {
            val gd = GradientDrawable() //创建drawable
            gd.setColor(rtvBgColor)
            gd.cornerRadius = rtvRadius
            if (rtvBorderWidth > 0) {
                gd.setStroke(rtvBorderWidth, rtvBorderColor)
            }
            this.background = gd
        }
    
    
    
        /**
         * 设置背景色 和 圆角
         */
        fun setRoundBgColorRes(@ColorRes colorRes: Int, radius: Float = rtvRadius) {
            rtvBgColor = resources.getColor(colorRes)
            rtvRadius = radius
            drawBg()
            invalidate()
        }
    
        /**
         * 设置背景颜色
         * @param color
         */
        override fun setBackgroundColor(@ColorInt color: Int) {
            val myGrad = background as GradientDrawable
            myGrad.setColor(color)
        }
    }
    

      

        <!--支持圆角的TextView-->
        <declare-styleable name="CusRoundTextView">
            <attr name="rtvBgColor" format="color" />
            <attr name="rtvBorderWidth" format="dimension" />
            <attr name="rtvBorderColor" format="color" />
            <attr name="rtvRadius" format="dimension" />
        </declare-styleable>
    

      

    app:rtvBgColor="@color/white"
    app:rtvRadius="10dp"
    

      

  • 相关阅读:
    xp安装IIS admexs.dll问题
    MySql 牛哥推荐有空看看
    PHP常用类型判断函数
    GET和POST的真正区别
    许多真理
    PHP file_put_contents() 函数
    Intellijidea建javaWeb以及Servlet简单实现
    新手上路,配置阿里云CentOS服务器LAMP
    php的socket通信
    PHP常用的一些数组操作总结
  • 原文地址:https://www.cnblogs.com/lizhilin2016/p/16266844.html
Copyright © 2020-2023  润新知