我有以下问题。我有一个不同的colorthemes应用程序。 在彩色布局的中间是一个带有白色角和白色文本的按钮。
按钮:
<Button
android:id="@+id/button"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:background="@drawable/selector_button"
android:layout_gravity="center"
android:text="Button"
android:textAllCaps="false"
android:textSize="18sp"
android:textColor="@color/buttontextcolor_green"
/>
selector_button:
<selector
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/button_off" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/button_on" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/button_on" />
<item
android:drawable="@drawable/button_off" />
</selector>
button_on / off只有中风和实体属性,可以在按下时使按钮变为白色。
问题在于 buttontextcolor_green:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:state_pressed="false"
android:color="@color/md_white_1000" />
<item android:state_focused="true"
android:state_pressed="true"
android:color="@color/greenPrimary"/>
<item android:state_focused="false"
android:state_pressed="true"
android:color="@color/greenPrimary" />
<item android:color="@color/md_white_1000" />
一切正常,按下Button
,按钮填充白色,textcolor
在按下时从白色变为绿色。
但是,在我以编程方式从我的按钮更改drawable
的{{1}}之后,它就赢了。
我在问题的开头感到难过,我使用多种colorthemes。因此,如果我按下按钮,android:textColor
的{{1}}应该更改,我也必须更改按钮的textcolor drawable。
backgroundcolor
下次,当我按下按钮时,Layout
必须是蓝色,但它不是。每次下载都会lBackground.setBackgroundColor(getResources().getColor(R.color.bluePrimary));
button.setTextColor((getResources().getColor(R.color.buttontextcolor_blue)));
保持白色。只需在启动应用程序后首次点击即可。
如果我的文字中的某些内容不正确,我道歉,我的德语更好!^^
问候
答案 0 :(得分:0)
使用getColorStateList
。它将解决您的问题。
更改行button.setTextColor((getResources().getColor(R.color.buttontextcolor_blue)));
到
button.setTextColor(getResources()。getColorStateList( R.color.buttontextcolor_blue)));
并将buttontextolor_blue颜色放在颜色资源文件夹中,如/res/color/buttontextcolor_blue.xml