如何以编程方式更改imageView的色调颜色?

9
 <ImageView
     android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:src="@drawable/star_icon"
      android:id="+@starid"/>

我需要在程序中改变图标的色调,请帮助我。

1
请查看以下链接:https://dev59.com/dmIj5IYBdhLWcg3wkl2U - sauvik
谢谢兄弟,它已经起作用了。 - sukesh
5个回答

32

感谢Hardik,原始回答

您可以通过代码轻松更改色调:

imageView.setColorFilter(Color.argb(255, 255, 255, 255));

如果你想要色彩调整,则:

imageView.setColorFilter(ContextCompat.getColor(context,
R.color.COLOR_YOUR_COLOR));

使用模式:

imageView.setColorFilter(ContextCompat.getColor(context,
R.color.COLOR_YOUR_COLOR), android.graphics.PorterDuff.Mode.MULTIPLY);

就我而言:

imgBottomDivider.setColorFilter(ContextCompat.getColor(getContext(),
            mPreferences.isNightMode() ? R.color.colorWhite : R.color.colorBlack));

夜间模式 白天模式


5

4

试试这个:

imageViewDone.setColorFilter(ContextCompat.getColor(context, R.color.yourcolor), android.graphics.PorterDuff.Mode.MULTIPLY);

1
你可以使用颜色过滤器。
  imageView.setColorFilter(ContextCompat.getColor(mContext, R.color.CHOICE_COLOUR), android.graphics.PorterDuff.Mode.MULTIPLY);

1
如果您想为图像查看器使用默认的Duff模式,则可以选择:
imageView.setColorFilter(int color)

但是,如果您想将颜色从浅色变成多重或深色,则应使用以下代码:
imageView.setColorFilter(int color, PorterDuff.Mode mode) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接