[英]How to change default button style in Android?
我想更改Button
的樣式。 然后在style.xml
添加樣式,然后將@style/BaseButton
為每個Button
。
有什么辦法可以做得更好? 我可以設置主題來更改所有Button
或其他視圖嗎?
我知道我可以將主題添加到style.xml
但是不幸的是,如果我將@android:background
類的屬性設置為Button
,那么也會設置其他視圖的背景。
所以這是我需要的:
<Button />
設置樣式。 Button
會受到影響,而其他視圖則保持不變。 用這個
<style name="ApplicationStyle" parent="android:Theme">
<item name="android:buttonStyle">@style/CKButton</item>
</style>
遵循以下步驟
創建一個表示按鈕狀態的XML文件
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/button_disabled" /> <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/button_pressed" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/button_focused" /> <item android:state_enabled="true" android:drawable="@drawable/button_enabled" /> </selector>
創建一個表示每個按鈕狀態的XML文件
第一個按鈕形狀用於啟用的按鈕狀態。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#00CCFF" android:centerColor="#0000CC" android:endColor="#00CCFF" android:angle="90"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <stroke android:width="2dip" android:color="#FFFFFF" /> <corners android:radius= "8dp" /> </shape>
第二個按鈕形狀用於聚焦按鈕狀態。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#F7D358" android:centerColor="#DF7401" android:endColor="#F7D358" android:angle="90"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <stroke android:width="2dip" android:color="#FFFFFF" /> <corners android:radius= "8dp" /> </shape>
第三按鈕形狀用於按下的按鈕狀態。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#0000CC" android:centerColor="#00CCFF" android:endColor="#0000CC" android:angle="90"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <stroke android:width="2dip" android:color="#FFFFFF" /> <corners android:radius= "8dp" /> </shape>
最后,第四按鈕形狀用於禁用按鈕狀態。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#F2F2F2" android:centerColor="#A4A4A4" android:endColor="#F2F2F2" android:angle="90"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <stroke android:width="2dip" android:color="#FFFFFF" /> <corners android:radius= "8dp" /> </shape>
創建一個表示按鈕樣式的XML文件
<resources> <style name="button" parent="@android:style/Widget.Button"> <item name="android:gravity">center_vertical|center_horizontal</item> <item name="android:textColor">#FFFFFFFF</item> <item name="android:shadowColor">#FF000000</item> <item name="android:shadowDx">0</item> <item name="android:shadowDy">-1</item> <item name="android:shadowRadius">0.2</item> <item name="android:textSize">16dip</item> <item name="android:textStyle">bold</item> <item name="android:background">@drawable/button</item> <item name="android:focusable">true</item> <item name="android:clickable">true</item> </style>
使用您自己的自定義應用程序主題創建XML。 下面的themes.xml
<resources> <style name="YourApplicationTheme" parent="android:style/Theme.NoTitleBar"> <item name="android:buttonStyle">@style/button</item> </style> </resources>
現在,您可以使用新樣式在應用程序上創建按鈕
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.