如何使用自定义图像更改复选框的alpha值?

时间:2011-06-30 06:17:15

标签: android checkbox background alpha

我想更改列表视图中复选框的alpha值。我可以更改复选框的图像。但不能改变它的alpha值。

布局/ list_item.xml

<LinearLayout android:id="@+id/col_1"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:orientation="vertical">
    <CheckBox android:id="@+id/myCheckBox"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:button="@drawable/bell_checkbox" />
</LinearLayout>

抽拉/ bell_checkbox.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bell" android:state_checkable="true" />
    <item android:drawable="@drawable/bell" android:state_checkable="false" />

    <item android:drawable="@drawable/bell" android:state_checked="true" />
    <item android:drawable="@drawable/bell" android:state_checked="false" />

    <item android:drawable="@drawable/bell" android:state_enabled="true" />
    <item android:drawable="@drawable/bell" android:state_enabled="false" />

    <item android:drawable="@drawable/bell" />
</selector>

以下代码有效,但不是我想要的

AlphaAnimation alpha = new AlphaAnimation (1f, 0.5f); // from 100% visible to 50%
alpha.setDuration (1000); // 1 second, or whatever you want
alpha.setFillAfter(true);
holder.myCheckBox.startAnimation(alpha);

我试过了:

holder.myCheckBox.getBackground().setAlpha(50);

holder.myCheckBox.getBackground().getCurrent().setAlpha(50);

两者都无法改变alpha值。

我认为从自定义复选框中获取可绘制对象的方式不正确: holder.myCheckBox.getBackground() - 当我将自定义drawable设置为android:按钮时,它无法获取可绘制对象形式的getBackground()。

如何获得android:button的drawable?

有人能给我一些提示吗?

0 个答案:

没有答案