最近项目用到了系统图标,但是设计师设计的颜色却与系统图标不一样;
如果每张图片都要用Photoshop进行颜色填充势必增加了工作量,而且不灵活,占资源;
例如同一张图片,希望点击的时候改变颜色,按照之前的做法就只能做两张图,而且如果又咽更换图片的颜色,就更麻烦了...
这个时候我就想到了对于这个纯色的图标,能不能直接去填充它的颜色呢?
后来经过搜索我发现这样是可以的,在xml文件中可以用tint属性来指定图标的颜色;
在代码中则需要用ImageView的对象img.setColorFilter()方法来指定图标颜色,这样就完美的解决了我们的问题,想要什么颜色只要使用不同的颜色的值就行了...
xml文件指定:
<
ImageButton
android:id
=
"@+id/action_menu"
android:layout_width
=
"wrap_content"
android:layout_height
=
"match_parent"
android:layout_alignParentLeft
=
"true"
android:layout_centerVertical
=
"true"
android:layout_marginRight
=
"10dp"
android:tint
=
"#737373"
android:background
=
"@android:color/transparent"
android:clickable
=
"false"
android:focusable
=
"false"
android:src
=
"@drawable/menu"
android:textIsSelectable
=
"false"
/>
代码指定:
holder
.
menu_function_icon
.setColorFilter(getResources().getColor(R.color.
icon_dark_blue
));