android – 如何在Button上更改CompoundDrawable的颜色?
作者:互联网
我试图找出如何更改按钮左侧可绘制图标的颜色.
下面是我使用的XML代码:
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_toRightOf="@+id/student_images"
android:drawableLeft="@mipmap/ic_email_black_18dp"
android:text=" myemail@gmail.com "
android:layout_below="@+id/email"
android:background="#00000000"
android:layout_marginBottom="20dp"
android:fontFamily="sans-serif"
android:textColor="@color/gray_text_color"
/>
我试过了android:tint但是图标的颜色没有变化.我被困在这里.
解决方法:
您可以通过以下方式以编程方式设置色调:
int tintColor = ContextCompat.getColor(context, android.R.color.darker_gray);
Button button = (Button) findViewById(R.id.button);
Drawable drawable = ContextCompat.getDrawable(context, R.mipmap.ic_email_black_18dp);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable.mutate(), tintColor);
drawable.setBounds( 0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
button.setCompoundDrawables(drawable, null, null, null);
或者您可以通过snodnipper使用库支持Drawable Tints.
该库可以为Button的drawableLeft设置色调.
https://github.com/snodnipper/android-appcompat-issue198613
标签:android,android-drawable,android-icons 来源: https://codeday.me/bug/20191001/1837365.html