【问题标题】:change color of @drawable inside of an item更改项目内@drawable 的颜色
【发布时间】:2020-07-24 08:08:02
【问题描述】:

我想在一个项目中更改我的@drawable 的颜色。这是我当前的代码:

<item android:gravity="bottom|start"
    android:width="160dp"
    android:height="160dp"
    >
    <rotate
        android:pivotY="50%" android:pivotX="50%"
        android:fromDegrees="270" android:toDegrees="270"
        android:drawable="@drawable/ic_left_circle"
        />
</item>

【问题讨论】:

    标签: android xml android-studio android-layout colors


    【解决方案1】:

    您提供的 XML 似乎不完整。我假设您使用的是 &lt;layer-list&gt; ,它创建了 LayerDrawable。您可以将 Drawable 转换为 LayerDrawable,然后您可以使用 LayerDrawable.findDrawableByLayerId(Int) 来获取正确的图层并使用 Drawable.setColorFilter(Color.RED, Mode.MULTIPLY) 为图层着色。 Mode.MULTIPLY 仅在图层为白色时有效,如果不是,我建议使用 Mode.SRC_OVER

    【讨论】:

      【解决方案2】:

      使用Drawable.setColorFilter( 0xffff0000, Mode.MULTIPLY )。这会将白色像素设置为红色,但我认为它不会影响透明像素。

      【讨论】:

      • 我的 xml 中不仅有一个项目,而且每个项目都有另一种颜色。如果我会使用您的代码,所有项目都将具有相同的颜色。
      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2021-11-22
      • 2018-08-21
      相关资源
      最近更新 更多