1. 程式人生 > >Android在xml中設定元件風格(圓角,點選效果selector,邊框,進度條風格,動畫)TextView文字透明度

Android在xml中設定元件風格(圓角,點選效果selector,邊框,進度條風格,動畫)TextView文字透明度

在標題中寫到的元件的特效,都是在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>