我已经在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"
- />
然后它的所有完成你的按钮将被设计为你想要的颜色.