【问题标题】:Changing colour of a solid coloured icon when pressed按下时更改纯色图标的颜色
【发布时间】:2015-02-23 10:10:06
【问题描述】:

我在操作栏上有几个纯色的小图标(和 Photoshop 制作的形状),按下时需要有不同的颜色。

除了将 state_selected 设置为另一个图标(在 photoshop 中以不同的颜色制作),我可以通过在 XML 中指定用另一种颜色填充相同的可绘制对象吗?这是否需要我以某种方式定义复合可绘制对象(位图 + 颜色)?谢谢

【问题讨论】:

    标签: android android-actionbar android-resources android-drawable android-icons


    【解决方案1】:

    如果您使用的是 API 21 (Android 5.0),您可以尝试在 XML 中使用 android:tintandroid:tintMode 属性。你的 android:tint 应该指向一个用 XML 定义的状态列表,在你的情况下应该是这样的:

     <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true" android:color="@color/desired_tint" />
     <item android:state_pressed="false" android:color="@color/transparent" />
     </selector>
    

    对于旧设备,我唯一想到的就是在运行时检索您的可绘制对象并调用

        drawable.setColorFilter(getResources().getColor(R.color.desired_tint), PorterDuff.Mode.SRC_IN)
    

    只要按下视图。不过,这可能不是最好的主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多