У меня есть кнопка, и я теперь устанавливаю стиль из xml. При нажатии кнопки я хочу изменить стиль следующим образом.
style="@style/ButtonNotSelected"
Место для
style="@style/ButtonSelected"
программно..
Пожалуйста помоги..!!!
Будет лучше, если вы будете использовать 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>
это может помочь вам:
<style name="myStyle">
<item name="android:textColor">#efefef</item>
<item name="android:background">#ffffff</item>
<item name="android:text">This is my button</item>
</style>
а потом:
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(context, R.style.myStyle);
btn= new Button(context);
попробуй так:
ContextThemeWrapper newContext = new ContextThemeWrapper(baseContext, R.style.MyStyle);
Button button = new Button(newContext);
ИЛИ ЖЕ
btn.setBackgroundResource(R.drawable.back_button_answer);
\res\drawable\back_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>