#java #android
#java #Android
Вопрос:
У меня есть кнопка, и я устанавливаю стиль из xml, теперь при нажатии кнопки я хочу изменить стиль, например
style="@style/ButtonNotSelected"
Поместите в
style="@style/ButtonSelected"
программно..
Пожалуйста, помогите ..!!!
Ответ №1:
Будет лучше, если вы будете использовать xml и селектор, чтобы ваша кнопка меняла цвет при ее нажатии, вы могли бы определить вызываемый XML-файл res/drawable/my_button.xml
.
Установите my_button.xml
в качестве фона для вашей кнопки.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/button_pressed" />
<item
android:state_pressed="false"
android:drawable="@drawable/button_normal" />
</selector>
@drawable/button_pressed
что-то вроде этого :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#449def"/>
<stroke android:width="1dp" android:color="#2f6699"/>
<corners android:radius="3dp"/>
<padding android:left="10dp" android:top="10dp" android:right="10dp"
android:bottom="10dp"/>
</shape>
</item>
</selector>
@drawable/button_normal
что-то вроде этого :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient android:startColor="#449def" android:endColor="#2f6699" android:angle="270"/>
<stroke android:width="1dp" android:color="#2f6699"/>
<corners android:radius="4dp"/>
<padding android:left="10dp" android:top="10dp" android:right="10dp"
android:bottom="10dp"/>
</shape>
</item>
</selector>
Ответ №2:
попробуйте так:
ContextThemeWrapper newContext = new ContextThemeWrapper(baseContext, R.style.MyStyle);
Button button = new Button(newContext);
или
btn.setBackgroundResource(R.drawable.back_button_answer);
resdrawableback_button_answer.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="10dip" />
<!-- background -->
<gradient
android:startColor="#D6D7D6"
android:centerColor="#E2E2E2"
android:centerY="0.75"
android:endColor="#D6D7D6"
android:angle="270"
/>
<stroke android:width="2dip" android:color="#fff"/>
</shape>
Комментарии:
1. Привет, я не хочу создавать новую кнопку, я уже разместил кнопку в xml.