您好,登錄后才能下訂單哦!
怎么在Android中利用Item實現一個點擊水波紋效果?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。
系統自帶的水波紋實現
系統自帶的方法非常方便,只需要給相應的空間設置背景,背景內容則為系統自帶的 selectableItemBackground ,這樣的話,水波紋就會在TextView所在的區域內進行繪制。
<TextView android:background="?android:attr/selectableItemBackground" ... />
ripple的使用(需要V21以上)
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/dark_blue"> <item android:drawable="@color/blue"/> </ripple>
其中item的顏色是控件正常狀態的背景色,ripple中的顏色是點擊時出現的顏色(會以半透明的形式展示出來)。ripple顏色的變化效果要比selector的效果更加柔和,以漸變的形式出現。
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/dark_blue"> <item android:id="@android:id/mask" android:drawable="@drawable/ic_launcher_foreground"/> </ripple>
mask的作用:只能在規定范圍內顯示水波動畫,范圍邊界由mask遮罩對象指定(可以換一些比原有背景小的圖片資源,可以看出效果)。
將ripple文件設置為控件的背景色就可以了。對于沒有設置點擊事件的控件,是沒有變化效果的。需要為控件設置 android:clickable="true"
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_item_tv" android:layout_width="match_parent" android:layout_height="50dp" android:clickable="true" android:background="@drawable/item_blue_selector" android:gravity="center" android:textSize="17sp" />
對于低版本來說,我還是選擇selector作為適配方案。截止到現在,21及以上版本已經覆蓋了90%的設備。
foreground設置
現在的點擊水波紋效果只有在抬起手指的時候才能看到,不符合一些項目的需求。
其實在控件除了設置background,還可以設置foreground。
android:foreground="?attr/selectableItemBackgroundBorderless"
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。