<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/star_icon"
android:id="+@starid"/>
我需要在程序中改变图标的色调,请帮助我。
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/star_icon"
android:id="+@starid"/>
感谢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));
使用
imageView.setColorFilter(int color, PorterDuff.Mode mode)
或者
imageView.setColorFilter(int color)
参考:https://developer.android.com/reference/android/widget/ImageView.html#setColorFilter(int)
这个方法可以设置ImageView的颜色过滤器。它需要一个整数参数,该参数是颜色值或颜色资源ID。如果您想要清除颜色过滤器,请将参数设置为0。试试这个:
imageViewDone.setColorFilter(ContextCompat.getColor(context, R.color.yourcolor), android.graphics.PorterDuff.Mode.MULTIPLY);
imageView.setColorFilter(ContextCompat.getColor(mContext, R.color.CHOICE_COLOUR), android.graphics.PorterDuff.Mode.MULTIPLY);
imageView.setColorFilter(int color)
imageView.setColorFilter(int color, PorterDuff.Mode mode)