【问题标题】:How to set color for imageview in Android如何在Android中为imageview设置颜色
【发布时间】:2016-12-03 20:22:09
【问题描述】:

我想将图标设置为ImageView,并从该站点下载了图标:FlatIcon
现在我想为这个图标设置颜色,但是当使用setBackground 时,只需为背景添加颜色而不是设置为图标!
使用 NavigationView 时,我可以使用以下代码为图标设置颜色:app:itemIconTint="@color/colorAccent"

如何将图标颜色设置为ImageView,例如itemIconTint?谢谢大家

【问题讨论】:

标签: android


【解决方案1】:

如果您使用的是图标,这可能会很有用:

android:tint="@color/colorAccent"

否则你可以尝试修改类:

ImageView imageViewIcon = (ImageView) listItem.findViewById(R.id.imageViewIcon);
imageViewIcon.setColorFilter(getContext().getResources().getColor(R.color.blue));

此线程中的更多信息:Is it possible to change material design icon color from xml in Android?

【讨论】:

  • android 4.0 支持 android:tint="@color/colorAccent" 吗?
  • 如果您看到 getColor 已被弃用,您需要遵循imageViewIcon.setColorFilter(ContextCompat.getColor(getContext(), R.color.blue));
  • 在这种情况下,无法应用具有 alpha 的颜色。例如,如果颜色为“#90000000”,则应用黑色。
【解决方案2】:

使用 ImageView 的 tint 属性。

 android:tint="@color/colorAccent"

【讨论】:

  • android 4.0 支持 android:tint="@color/colorAccent" 吗?
  • @MohammadNouri 否,android:tint 属性中的颜色状态列表和资源引用在 Android 5.0 (API 21) 之前不受支持
  • 实际上,ColorStateList 从 API v1 开始就已经存在了:developer.android.com/reference/android/content/res/…
【解决方案3】:
 DrawableCompat.setTint(imageView.getDrawable(), ContextCompat.getColor(getApplicationContext(), R.color.white));

【讨论】:

    【解决方案4】:

    最新的 Lint 使用 android:tint 显示警告,建议使用 app:tint,但在与 app:tintMode 一起使用之前,tint 是不可见的。所以它看起来像这样:

    app:tint="@color/yourcolor"
    app:tintMode="add"
    

    【讨论】:

    • 就我而言, app:tintMode="add" 什么都不做。此外 app:tint="@color/yourcolor" 的效果在运行时也是可见的,即在设计器中看不到它的应用。
    【解决方案5】:

    在 android XML 中使用这个 tint imageview

     android:tint="@color/yourcolor"
    

    【讨论】:

      【解决方案6】:

      使用

      imageView.setColorFilter(getResources().getColor(R.color.color_white)); 
      

      【讨论】:

        【解决方案7】:

        只需使用:ivMyImageView.setColorFilter(ActivityCompat.getColor(context, android.R.color.holo_green_light))

        【讨论】:

          【解决方案8】:
          app:tint="@color___"
          

          【讨论】:

            【解决方案9】:

            只需在您的图像视图中添加这一行。

            在 XML 文件中:-

             android:tint="@color/color_name"
            
                       or
            
            
            app:tint="@color/color_name"
            

            在 Java 文件中:-

            imageViewIconName.setColorFilter(getContext().getResources().getColor(R.color.color_name));
            

            【讨论】:

              【解决方案10】:

              您可以简单地使用android:tint,但由于某些版本存在一些问题。

              使用AppCompatImageView 就可以了。

              <AppCompatImageView 
                      android:tint="@color/your_color" />
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-12-08
                • 1970-01-01
                • 1970-01-01
                • 2017-10-22
                • 2017-10-13
                • 1970-01-01
                相关资源
                最近更新 更多