所以另一天,另一个问题!我设置了一个带有色调的ImageView
,如下所示:
<ImageView
android:id="@+id/image_money"
android:layout_width="25dp"
android:layout_height="25dp"
android:padding="3dp"
android:src="@drawable/ic_money_icon"
android:tint="#c7c7c7"/>
我需要恢复或设置tintColor,所以我使用DrawableCompat
如下:
Drawable imagem = holder.view.getContext().getResources().getDrawable(R.drawable.ic_money_icon);
imagem = DrawableCompat.wrap(imagem);
imagem = imagem.mutate();
DrawableCompat.setTint(imagem,Color.parseColor("#43a085"));
holder.imageDebito.setImageDrawable(imagem);
我检查了imagem
上的位图,看起来应该是我应该设置的颜色,但是当应用于ImageView imageDebito
时,它会恢复到XML上的色调集。如果我拍摄视图中未使用的其他图像,应用色调,然后在ImageView上设置它,它从XML获得相同的色调...我尝试设置setImageTintList()
,但是它在API级别17上不可用......
因此,我需要删除tint属性,或者通过xml上的ImageView对图像强制执行色调。
答案 0 :(得分:1)
使用setColorFilter()
方法。
Drawable myIcon = getResources().getDrawable( R.drawable.button );
ColorFilter filter = new LightingColorFilter( Color.BLACK, Color.BLACK);
myIcon.setColorFilter(filter);
编辑:只是改进了格式......