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"
--------------------------------------------------安卓單擊特效結尾---------------------------------------------------