我在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>
现在我只需点击即可更改文字颜色。我想在不知道左边的抽奖名称的情况下更改可绘制颜色和文本颜色。
答案 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