1. 程式人生 > >Android在XML新增單擊特效

Android在XML新增單擊特效

 

Android單擊水波紋:

直接使用就可以:

 android:foreground="?attr/selectableItemBackground"

drawable資源被佔用,可以用foreground來設定單擊特效

xml裡編寫單擊水波紋樣式是通過ripple標籤來編寫,具體使用方法暫時不補充,可百度

--------------------------------------------------安卓單擊特效:--------------------------------------------------

首先需要在drawable資原始檔夾下新建一個自定義xml的名稱

然後寫兩個節點,分別為:
    按下變換顏色示例:
    <item android:drawable="@color/colorAccent" android:state_pressed="false" android:state_focused="false"/>
    <item android:drawable="@android:color/holo_orange_dark" android:state_focused="false"/>

簡易寫法:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按下時的文字顏色-->
        <item android:state_pressed="true" android:color="#afaeb1">  </item>
    <!--沒按下時的文字顏色-->
        <item android:state_pressed="false" android:color="#FFFFFF">  </item>
</selector>

    <!--該資原始檔,第一行的item節點,代表呼叫該資源的預設顏色或圖片,第二行的item節點,代表按下以後要顯示的顏色或圖片-->
    <!--節點裡的屬性state_focused 代表該控制元件是否獲得焦點 state_pressed 是否按下或觸控
    第一行的item如果state_pressed為true,則說明預設是按下的狀態,顏色或者圖片預設為按下去的圖片
    第二行的state_pressed如果為true,則該控制元件可以按下,如果為false,則該控制元件不可按下
    第一行的item如果state_focused為true,已button為例,其它控制元件可能不同,因為button沒有焦點
    設定為true以後該控制元件顏色預設為按下的顏色,且該控制元件不可按下(後期測試彈出提示框看是沒有特效還是不可按下)
    第二行的設定為false以後可以按下,並且按下的顏色或圖片會暫時改變成第二行的資源,如果設定為true以後不可以再按下

    -->

    按下更改圖片示例:
<item android:drawable="@drawable/ic_star_black_38dp" android:state_focused="false" android:state_pressed="false"/>
<item android:drawable="@drawable/ic_star_border_black_38dp" android:state_pressed="false"/>

然後到需要有單擊特效的控制元件裡增加屬性來繫結特效:
        android:background="@drawable/btn_selector2"

其中@drawable/為資原始檔夾btn_selector2為特效xml名稱

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">


    <!--按下狀態-->
    <item android:state_pressed="true">
        <shape>
            <solid android:color="#666666" />
            <!--圓角-->
            <corners android:radius="4dip" />
        </shape>
    </item>


    <!--非按下狀態-->
    <item>
        <shape>
            <!-- 填充的顏色 -->
            <solid android:color="#F9F9F9" />
            <!-- 設定按鈕的四個角為弧形 -->
            <!-- android:radius 弧形的半徑 -->
            <corners android:radius="4dip" />
            <!--邊框的寬度及顏色-->
            <stroke android:width="1px" android:color="#4b9eff" />
        </shape>
    </item>
</selector>

android:background="@drawable/shape_button"
--------------------------------------------------安卓單擊特效結尾---------------------------------------------------