Android在xml中設定元件風格(圓角,點選效果selector,邊框,進度條風格,動畫)TextView文字透明度
阿新 • • 發佈:2019-02-06
在標題中寫到的元件的特效,都是在xml中為元件定義的
步驟:
1.在drawable下建立“Drawable resource file”,命名為:btn_corners(表示功能:圓角button)
2.在btn_corners.xml檔案中寫入程式碼如下
3.TextView中文字透明度設定【
半透明<Button android:background="#e0000000" />
透明<Button android:background="#00000000" />
v.getBackground().setAlpha(100);//0~255透明度值
】
下面分別列了幾種效果的詳情程式碼:
一、點選改變文字顏色(RadioButton中文字)
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="@color/color_home_tv_selected"/>//選中狀態 <item android:color="@color/color_home_tv_default"/> //非選中狀態 </selector>
<item name="android:textColor">@drawable/home_radio_textcolor</item> //style中的item引用(在屬性中使用style=“@style/名稱”)
二、點選特效+圓角(當用戶按下按鈕時該表背景色)
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!--點選特效:當用戶按下[按鈕]時的特效--> <item android:state_pressed="true"> <shape> <!-- corners:圓角,radius-圓角半徑 solid:背景填充顏色 --> <corners android:radius="10dp"/> <solid android:color="@color/Cyan"/> </shape> </item> <!--點選特效:當用戶沒按下[按鈕]時的特效--> <item android:state_pressed="false"> <shape> <corners android:radius="10dp"/> <solid android:color="@color/DeepSkyBlue"/> </shape> </item> </selector>
在元件上引用設定屬性【background】
android:background="@drawable/press_action"
效果:
三、常用邊框(為按鈕設定邊框)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--item屬性裡的設定上下左右的寬度:會在相應的邊上剪去該寬度的邊框 -->
<item
android:bottom="-10dp"
android:right="-10dp">
<shape>
<!--圓角-->
<corners android:radius="10dp"/>
<!--背景填充色-->
<solid android:color="@color/DeepSkyBlue"/>
<!--邊框填充色,邊框寬度-->
<stroke android:color="#000" android:width="10dp"/>
</shape>
</item>
</layer-list>
在元件上引用設定屬性【background】
android:background="@drawable/shape_btn"
效果:
四、進度條效果(橫向進度條)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--這條item:設定progressbar的背景屬性-->
<item android:id="@android:id/background">
<shape>
<corners android:radius="15dp"/>
<solid android:color="@color/DeepSkyBlue"/>
<!--給進度條新增1條寬度是2dp的邊框-->
<stroke android:color="@color/DeepSkyBlue" android:width="2dp"/>
</shape>
</item>
<!--這條item:設定progressbar的進度條屬性-->
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="15dp"/>
<solid android:color="#00ff00"/>
<!--給進度條新增1條寬度是2dp的邊框-->
<stroke android:color="@color/DeepSkyBlue" android:width="2dp"/>
</shape>
</clip>
</item>
</layer-list>
在ProgressBar中設定屬性:
android:max="100" android:progress="25" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:progressDrawable="@drawable/progress_normal"
效果:
五、點選改變ImageButton的背景圖/src
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/refresh"
android:state_pressed="false">
</item>
<item android:state_pressed="true"
android:drawable="@drawable/btn_pressed"/>
</selector>
效果:按下ImageButton時顯示圖片與常規(不按下時不一樣)六、點選改變RadioButton文字顏色【RadioButton放於RadioButtonGroup中】
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#00ff00"></item><span style="white-space:pre"> </span>選中後文字顏色變為綠色
<item android:state_checked="false" android:color="#333000"></item><span style="white-space:pre"> </span> 沒選中顏色為黑色
</selector>