以编程方式更改可绘制的xml内容

时间:2016-11-09 18:25:03

标签: android xml listview

我们在listview中有一个复选框,其背景图片需要根据listview项目的内容进行更改,例如gmail电子邮件列表视图。

我们现在的方法是使用android:button="@drawable/startcheckbox"选项设置复选框背景,其中startcheckbox是包含以下内容的可绘制文件夹中的xml:

<?xml version="1.0" encoding="utf-8"?>
    <selector  xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_checked="false" android:drawable="@drawable/star_rate_white_54x54" />
        <item android:state_checked="true" android:drawable="@drawable/star_rate_yellow_54x54" />
        <item android:drawable="@drawable/star_rate_white_54x54" /> <!-- default state -->
    </selector>

我的问题是如何从填充列表视图的片段中更改state_checked="false"state_checked="true"

1 个答案:

答案 0 :(得分:0)

通过Drawable.mutate()突变drawable然后你可以改变你想要的任何东西。

总的来说,虽然我确实发现如果你想做任何编程而不是缩放它的绘图,你最好避免使用xml并使用代码和自定义drawables。