Android改变图片背景颜色tint(着色)或 backgroundTint

安卓对图标着色以节省apk体积,网上有很多介绍到的,使用也很简单

<ImageView
    android:tint="@android:color/white"
    android:backgroundTint="@android:color/black"
    />

平时都这样使用,今天得在代码中改,所以记录一下

第一种

Drawable icon;
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){
    icon = getResources().getDrawable( R.drawable.ic_back_black );
}else{
    icon = getResources().getDrawable( R.drawable.ic_back_black ,getTheme());
}
ColorFilter filter = new LightingColorFilter( Color.WHITE, Color.WHITE);
icon.setColorFilter(filter);
image.setImageDrawable(icon);

第二种,需要V4包

Drawable icon1;
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){
    icon1 = getResources().getDrawable( R.drawable.ic_back_black );
}else{
    icon1 = getResources().getDrawable( R.drawable.ic_back_black ,getTheme());
}
Drawable tintIcon = DrawableCompat.wrap(icon1);
DrawableCompat.setTint(tintIcon, Color.WHITE);
//DrawableCompat.setTintList(tintIcon, Color.WHITE);
titleBack1.setImageDrawable(tintIcon);

好吧,两个都能实现.也不知道哪个更好.

网上有不少相关介绍

http://www.cnblogs.com/helloandroid/p/4779061.html

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0128/3923.html

时间: 2024-10-25 23:06:00

Android改变图片背景颜色tint(着色)或 backgroundTint的相关文章

ios点击改变uiview背景颜色

ios点击改变uiview背景颜色是一个再常见不过的需求.第一反应应该不麻烦,于是写了个第一个版本 @interface RespondentUIView() { UIColor * bgColor; } @end @implementation RespondentUIView- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { bgColor = self.backgroundColor; self.backgr

改变图片的颜色

定义 #import <UIKit/UIKit.h> @interface UIImage (ChangeImageColor) /** * 改变图片的颜色 * * @param tintColor <#tintColor description#> * * @return <#return value description#> */ - (UIImage *) imageWithTintColor:(UIColor *)tintColor; @end 实现 - (U

用JS让下拉框改变网页背景颜色

<HTML> <HEAD> <TITLE>石家庄渣浆泵配件</TITLE> </HEAD> <SCRIPT> <!-- function bgChange(selObj) { newColor = selObj.options[selObj.selectedIndex].text; document.bgColor = newColor; selObj.selectedIndex = -1; } //--> </SC

Android练习—修改背景颜色

Activity值传递的一个小练习,不多说直接上代码. ---------------------------XML部分----------------------------- 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:id=&qu

使用 SetColorFilter 神奇地改变图片的颜色

关键代码如下: colors.xml文件中定义一个颜色值: <color name="permission_dialog_img_color">#000000</color> 代码中调用: int mFilterColor = ContextCompat.getColor(mContext,R.color.permission_dialog_img_color); int blue = Color.blue(mFilterColor); int green =

CorelDRAW快速去除图片背景颜色

当我们需要从网上借助一些素材图片在CorelDRAW中运用时,往往需要去掉图片的背景颜色.本文小编分享CDR中如何快速去除图片背景颜色的方法,通过此方法可以做简单的照片抠图.合成. 1. 打开CorelDRAW软件,导入待处理的图片. 2. 此时导入的是位图图片,如果不是位图还可以将其装换为位图,执行“位图>转换为位图”即可.如果该图片是位图模式(位图即由像素网格或点网格组成的图像.)那么观察“位图”菜单下的滤镜状态为可用. 3. 选择位图,执行“位图>位图颜色遮罩”命令,在界面右侧弹出的“位

Android:图片背景渐变切换与图层叠加的实现

本例要实现的目的: 1.图片背景渐变的切换,例如渐变的从红色切换成绿色. 2.代码中进行图层叠加,即把多个Drawable叠加在一起显示在一个组件之上. 效果图: 代码很简单: (1)布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layo

android:更改PagerTabStrip背景颜色,标题字体样式、颜色和图标,以及指示条的颜色

1.更改PagerTabStrip背景颜色 我们直接在布局中设置background属性可以: <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="fill_parent" > <android.support.v4.view.PagerTabStr

MFC改变对话框背景颜色

原文链接: http://blog.sina.com.cn/s/blog_59955afc0100spjz.html 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. ---- 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色.下面的例子是将应用程序对话框设置为蓝色背景和红色文本,步骤如下: ---- ① 新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg. ---- ② 在CExampleDlgApp ::InitInst