android imageview 在 xml 中设置的色调以编程方式覆盖在 DrawableCompat 上设置的色调

标签 android android-layout android-support-library android-drawable

改天,又一个问题!我设置了一个带有色调的 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 上设置的色调。如果我拍摄 View 中未使用的不同图像,应用色调,然后将其设置在 ImageView 上,它会从 XML 中获得相同的色调...我尝试设置 setImageTintList(),但它在 API 级别 17 上不可用...

因此,我需要删除 tint 属性,或者在 xml 中的 ImageView 上强制对图像施加色调。

最佳答案

使用 setColorFilter() 方法。

Drawable myIcon = getResources().getDrawable( R.drawable.button ); 
ColorFilter filter = new LightingColorFilter( Color.BLACK, Color.BLACK);
myIcon.setColorFilter(filter);

编辑:只是改进了格式...

关于android imageview 在 xml 中设置的色调以编程方式覆盖在 DrawableCompat 上设置的色调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38884765/

相关文章:

android - 在 xml 中声明时自定义 View 不起作用

android - 带有浅色应用程序主题的深色工具栏

java - 如何从 RecyclerView.Adapter 访问 LayoutManager 以获得 scrollToPosition?

android - iOS 通知负载中是否需要 aps 字典?我们可以为 iOS 和 Android 使用相同的有效负载吗?

android - ActivityNotFoundException 即使它在 list 中声明

java - 如何为双ArrayList实现Parcelable?

Android对齐布局中心

android - 如何为 ACTION_MOVE 获得更快的触摸频率

android - 致命异常 : java. lang.NoClassDefFoundError: android/view/ViewStructure

android - 实现支持库操作栏时出错