单击按钮更改可绘制颜色

时间:2013-07-26 08:35:00

标签: android button colors onclick drawable

我在xml中有一些带有android:drawableLeft=...

的文本和可绘制集的按钮

我想知道如何在点击时更改文本和drawable的颜色。它必须是通用的,因为我每次都有很多按钮,不同的抽屉。

我的XML:

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/btn_articles"
        style="@style/Main_button"
        android:layout_marginLeft="5dp"
        android:background="@color/green3"
        android:onClick="myClickHandler"
        android:text="Articles"
        android:drawableLeft="@drawable/ic_article"
        android:textColor="@drawable/btn_default" />

    <Button
        android:id="@+id/btn_encaiss"
        style="@style/Main_button"
        android:layout_marginLeft="5dp"
        android:background="@color/green4"
        android:onClick="myClickHandler"
        android:text="Encaissement"
        android:drawableLeft="@drawable/ic_encaiss"
        android:textColor="@drawable/btn_default" />

    <Button
        android:id="@+id/btn_stats"
        style="@style/Main_button"
        android:layout_marginLeft="5dp"
        android:background="@color/green1"
        android:onClick="myClickHandler"
        android:text="Statistiques"
        android:drawableLeft="@drawable/ic_stats"
        android:textColor="@drawable/btn_default" />

    <Button
        android:id="@+id/btn_clients"
        style="@style/Main_button"
        android:layout_marginLeft="5dp"
        android:background="@color/green2"
        android:onClick="myClickHandler"
        android:text="Clients"
        android:drawableLeft="@drawable/ic_clients"
        android:textColor="@drawable/btn_default" />
</LinearLayout>

现在我只需点击即可更改文字颜色。我想在不知道左边的抽奖名称的情况下更改可绘制颜色和文本颜色。

1 个答案:

答案 0 :(得分:0)

Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
img.setBounds( 0, 0, 60, 60 );
txtVw.setCompoundDrawables( img, null, null, null );

使用此代码,您可以以编程方式更改左侧drawable。

有关文字颜色,请参阅Android documentation