自带点击态的ImageView、TextView

2022-08-27  本文已影响0人  azu_test
class ImageViewWithPressState : androidx.appcompat.widget.AppCompatImageView {
    constructor(context: Context) : super(context)
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)

    override fun setPressed(pressed: Boolean) {
        if (isEnabled) {
            imageAlpha = if (pressed) {
                //60%可见度
                0x99
            } else {
                //100%可见度
                0xFF
            }
            super.setPressed(pressed)
        }
    }

    override fun setEnabled(enabled: Boolean) {
        imageAlpha = if (enabled) {
            0xFF
        } else {
            //40%可见度
            0x66
        }
        super.setEnabled(enabled)
    }
}
class TextViewWithPressState : androidx.appcompat.widget.AppCompatTextView {
    constructor(context: Context) : super(context)
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)

    override fun setPressed(pressed: Boolean) {
        if (isEnabled) {
            alpha = if (pressed) {
                //60%可见度
                0.6f
            } else {
                //100%可见度
                1f
            }
        }
        super.setPressed(pressed)
    }

    override fun setEnabled(enabled: Boolean) {
        alpha = if (enabled) {
            //100%可见度
            1f
        } else {
            //40%可见度
            0.4f
        }
        super.setEnabled(enabled)
    }
}
上一篇下一篇

猜你喜欢

热点阅读