Android 单色图片变色 setTint实现

import android.content.res.Resources
import android.support.v4.graphics.drawable.DrawableCompat
import android.widget.ImageView

class StaticUtiil {
    companion object {
        fun changeImageViewColor(imageView: ImageView, color: Int, resources: Resources) {
            DrawableCompat.setTint(imageView.drawable, resources.getColor(color))
            imageView.setImageDrawable(imageView.drawable)
            imageView.setImageDrawable(imageView.drawable)
        }
    }
}
import android.app.Activity
import android.os.Bundle
import android.widget.ImageView
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        iv_one.setOnClickListener {
            if (iv_one.isSelected) {
                iv_one.isSelected = false
                StaticUtiil.changeImageViewColor(it as ImageView, R.color.black, resources)
            } else {
                iv_one.isSelected = true
                StaticUtiil.changeImageViewColor(it as ImageView, R.color.colorPrimary, resources)
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容