Pre*_*rem 17 android android-layout android-button android-styles
我在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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
在我的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"
/>
Run Code Online (Sandbox Code Playgroud)
如果我将以下行添加到上面的按钮视图,
android:background="@style/ButtonAppTheme"
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃说应该为background属性设置drawable资源.
所以我创建了下面的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>
Run Code Online (Sandbox Code Playgroud)
如果我设置 android:background="@drawable/abc"我没有看到按钮中设置的样式.
所以请告诉我如何设置按钮的样式.
谢谢.
Cra*_*ler 19
如果你这样做会很简单.
首先在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>
Run Code Online (Sandbox Code Playgroud)
在values文件夹的colors.xml中添加这些颜色.
<!-- 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>
Run Code Online (Sandbox Code Playgroud)
最后在你想要的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"
/>
Run Code Online (Sandbox Code Playgroud)
然后完成所有按钮将使用您想要的颜色设置样式.
Android Button Maker是在线工具,可为Android Apps生成按钮代码.Android API提供可绘制资源,其中XML文件定义几何形状,包括颜色,边框和渐变.这些按钮基于形状可绘制的XML代码生成,与普通的png按钮相比加载速度更快.您可以在设置面板中自定义按钮属性并获取源代码.
检查此链接Button Maker
无需破解大脑...这个工具使它变得简单
更换
android:background="@style/ButtonAppTheme"
Run Code Online (Sandbox Code Playgroud)
与
style="@style/ButtonAppTheme"
Run Code Online (Sandbox Code Playgroud)
一切都很好!