您的位置:首页 > 房产 > 家装 > 湖北省疫情最新消息_网络服务业有哪些_广告联盟哪个比较好_我要发布信息

湖北省疫情最新消息_网络服务业有哪些_广告联盟哪个比较好_我要发布信息

2024/12/27 0:33:56 来源:https://blog.csdn.net/m0_50774720/article/details/144615853  浏览:    关键词:湖北省疫情最新消息_网络服务业有哪些_广告联盟哪个比较好_我要发布信息
湖北省疫情最新消息_网络服务业有哪些_广告联盟哪个比较好_我要发布信息

众所周知,矢量图可以作为一个drawable文件设置到ImageView里面,但是我常常会碰到同一个矢量图,路径的颜色却老是变化情况,一怒之下写出来这个控件~~

同一个矢量图的文件,设置颜色后:

 

1.在values下的attrs.xml文件中创建自定义的属性

<?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="vectorImageView"><attr name="vectorPathColor" format="color|reference" /></declare-styleable></resources>

2.创建自定义控件文件 VectorImageView.kt 

import android.content.Context
import android.graphics.drawable.Drawable
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import androidx.core.graphics.drawable.DrawableCompatclass VectorImageView @JvmOverloads constructor(context: Context,attrs: AttributeSet? = null,defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) {var iconColor: Int = 0set(value) {field = valueif (iconColor != 0) {applyIconColor(value)}}init {// 初始化时读取自定义属性attrs?.let {val typedArray = context.obtainStyledAttributes(it, R.styleable.vectorImageView)// 使用 getColor 获取颜色,默认值为 0iconColor = typedArray.getColor(R.styleable.vectorImageView_vectorPathColor, 0)typedArray.recycle()}}// 根据颜色值应用到 ImageView 的矢量图上private fun applyIconColor(color: Int) {val drawable: Drawable? = drawabledrawable?.let {val wrappedDrawable = DrawableCompat.wrap(it).mutate()DrawableCompat.setTint(wrappedDrawable, color)setImageDrawable(wrappedDrawable)}}

3.使用

    <包名.VectorImageViewandroid:layout_width="@dimen/dp_60"android:layout_height="@dimen/dp_60"android:src="@drawable/left_arrow"app:vectorPathColor="@color/color_A0A5A6" /><!-- app:vectorPathColor="#FF921D"-->

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com