我已经在res文件夹中定义了以下文件.
styles_apptheme.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Generated with http://android-holo-colors.com --> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="ButtonAppTheme" parent="android:Widget.Holo.Light.Button"> <item name="android:background">@drawable/apptheme_btn_default_holo_light</item> </style> </resources>
themes_apptheme.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Generated with http://android-holo-colors.com --> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppTheme" parent="@style/_AppTheme"/> <style name="_AppTheme" parent="Theme.AppCompat.Light"> <item name="android:editTextBackground">@drawable/apptheme_edit_text_holo_light</item> <item name="android:buttonStyle">@style/ButtonAppTheme</item> </style> </resources>
在我的Layout.xml文件中,我已经定义了我的按钮如下
<Button android:id="@+id/btnAddTitle" android:layout_below="@id/edEnterTitleValue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btn_AddTitle" android:layout_margin="20dp" />
如果我将以下行添加到上面的按钮视图中,
android:background="@style/ButtonAppTheme"
应用程序崩溃说可以为background属性设置可绘制的资源.
所以我创建了以下drawable文件 – abc.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/apptheme_btn_default_normal_holo_light" /> <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/apptheme_btn_default_disabled_holo_light" /> <item android:state_pressed="true" android:drawable="@drawable/apptheme_btn_default_pressed_holo_light" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/apptheme_btn_default_focused_holo_light" /> <item android:state_enabled="true" android:drawable="@drawable/apptheme_btn_default_normal_holo_light" /> <item android:state_focused="true" android:drawable="@drawable/apptheme_btn_default_disabled_focused_holo_light" /> <item android:drawable="@drawable/apptheme_btn_default_disabled_holo_light" /> </selector>
如果我设置android:background =“@ drawable / abc”我看不到按钮中设置的样式.
所以请让我知道如何设置按钮的风格.
谢谢.
解决方法
这样做会很简单.
首先在drawable文件夹中创建一个button_selector.xml.
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" > <shape android:shape="rectangle" > <corners android:radius="5dp" /> <stroke android:width="1dip" android:color="@color/green_temp" /> <gradient android:angle="-90" android:startColor="@color/green_temp" android:endColor="@color/green_temp" /> </shape> </item> <item android:state_focused="true"> <shape android:shape="rectangle" > <corners android:radius="5dp" /> <stroke android:width="1dip" android:color="#971E05" /> <solid android:color="#58857e"/> </shape> </item> <item > <shape android:shape="rectangle" > <corners android:radius="5dp" /> <stroke android:width="1dip" android:color="@color/bright_green" /> <gradient android:angle="-90" android:startColor="@color/green_temp" android:endColor="@color/button_green" /> </shape> </item> </selector>
<!-- Green --> <color name="green_temp">#23A96E</color> <color name="green_dark">#159204</color> <color name="bright_green">#02D8B0</color> <color name="button_green">#10a54a</color>
最后在你所需的layout.xml按钮中放置从上面的选择器的背景.
<Button android:id="@+id/btnAddTitle" android:layout_below="@id/edEnterTitleValue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btn_AddTitle" android:background="@drawable/button_selector" android:layout_margin="20dp" />
然后它的所有完成你的按钮将被设计为你想要的颜色.