Android 指定纯色图标的颜色

时间:2021-05-21 14:34:14
    最近项目用到了系统图标,但是设计师设计的颜色却与系统图标不一样;
如果每张图片都要用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
 
));