其他分享
首页 > 其他分享> > android – 如何在Button上更改CompoundDrawable的颜色?

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