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

时间:2017-08-23 06:17:37

标签: android

 <imageView
     android: Layout_width="match_parent"
      android: Layout_width="match_parent"
      android:src="@drawable/star_icon"
      android:I'd="+@starid"/>

我需要以编程方式帮助我改变图标的​​色调

5 个答案:

答案 0 :(得分:8)

orginal answer

您可以通过以下方式轻松更改色调:

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));

in night mode in day mode

答案 1 :(得分:1)

使用

imageView.setColorFilter(int color, PorterDuff.Mode mode) 

imageView.setColorFilter(int color)

参考:https://developer.android.com/reference/android/widget/ImageView.html#setColorFilter(int)

答案 2 :(得分:0)

试试这个,

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

答案 3 :(得分:0)

您可以使用滤色器

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

答案 4 :(得分:0)

如果你想为imagevview使用默认的Duff模式,你可以选择

imageView.setColorFilter(int color)

但如果你想将灯光颜色变为多重或暗色,那么你应该使用:

imageView.setColorFilter(int color, PorterDuff.Mode mode)