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

suk*_*esh 3 android

 <ImageView
     android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:src="@drawable/star_icon"
      android:id="+@starid"/>
Run Code Online (Sandbox Code Playgroud)

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

Abr*_*yev 12

原始答案

您可以通过以下方式在代码中轻松更改色调:

imageView.setColorFilter(Color.argb(255, 255, 255, 255));
Run Code Online (Sandbox Code Playgroud)

如果你想要颜色色调那么:

imageView.setColorFilter(ContextCompat.getColor(context,
R.color.COLOR_YOUR_COLOR));
Run Code Online (Sandbox Code Playgroud)

使用模式:

imageView.setColorFilter(ContextCompat.getColor(context,
R.color.COLOR_YOUR_COLOR), android.graphics.PorterDuff.Mode.MULTIPLY);
Run Code Online (Sandbox Code Playgroud)

在我的情况下:

imgBottomDivider.setColorFilter(ContextCompat.getColor(getContext(),
            mPreferences.isNightMode() ? R.color.colorWhite : R.color.colorBlack));
Run Code Online (Sandbox Code Playgroud)

在夜间模式 在白天模式


Uma*_*ain 6

使用

imageView.setColorFilter(int color, PorterDuff.Mode mode) 
Run Code Online (Sandbox Code Playgroud)

或者

imageView.setColorFilter(int color)
Run Code Online (Sandbox Code Playgroud)

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