關于Android Button水波紋效果

今天設計給我出了一個難題,讓我把按鈕改成水波紋的樣式并且制定固定的顏色。在網上找了好幾個小時也沒有解決這個問題,最終找到大神提供的解決方案,原文在這里:http://blog.csdn.net/u012045061/article/details/50973425

此圖片非項目對應圖片

稍有不同的地方在于,設計要求按鈕在disable的時候展示另一種顏色和字體,這就比較麻煩了。
由于動畫都有固定的時間限制,所以采用動畫的方式并不是特別可取,諸位看官還請留意,最好使用Android系統(tǒng)提供的。
不說了,直接上代碼:
1.style中的theme需要使用AppCompat的主題,沒必要給按鈕設置固定的style
2.Activity和Fragment中無需做任何操作
3.字體顏色選擇器:btn_color_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#808080" android:state_enabled="false" />
<item android:color="@android:color/white" android:state_enabled="true" />
</selector>

4.正常狀態(tài)下button的樣式:dot_check_009ee7.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#009ee7" />
<corners android:radius="22dp" />
</shape>

5.按壓狀態(tài)下按鈕的樣式:dot_check_2d63af.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#2d63af" />
<corners android:radius="22dp" />
</shape>

6.不可點擊狀態(tài)下的按鈕樣式:dot_check_b3b3b3.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#b3b3b3" />
<corners android:radius="22dp" />
</shape>

7.創(chuàng)建默認的背景選擇器:selector_btn_blue.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/dot_check_b3b3b3" android:state_enabled="false" />
<item android:drawable="@drawable/dot_check_2d63af" android:state_pressed="true" />
<item android:drawable="@drawable/dot_check_2d63af" android:state_focused="true" />
<item android:drawable="@drawable/dot_check_2d63af" android:state_selected="true" />
<item android:drawable="@drawable/dot_check_009ee7" />
</selector>

8.在res目錄下創(chuàng)建drawable-v21目錄:

創(chuàng)建drawable-v21目錄.png

9.在drawable-v21目錄中創(chuàng)建一個水波紋背景選擇樣式:selector_btn_blue.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#2d63af">//這里是擴散水波紋的色值里面的色值可以任選一個
<item>
<selector>
// 這里是當按鈕處于disable狀態(tài)下的顏色
<item
android:drawable="@drawable/dot_check_b3b3b3"
android:state_enabled="false" />
// 這里是默認展示出來的顏色
<item
android:drawable="@drawable/dot_check_009ee7"
android:state_enabled="true" />
</selector>
</item>
</ripple>
10.在布局文件中引用:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:id="@+id/tv_certificate_enterprise_submit"
    android:layout_width="@dimen/button_width"
    android:layout_height="@dimen/button_height"
    android:layout_centerInParent="true"
    android:background="@drawable/selector_btn_blue"
    style="?android:attr/borderlessButtonStyle"
    android:enabled="true"
    android:gravity="center"
    android:text="提交審核"
    android:textColor="@drawable/btn_color_selector"
    android:textSize="16sp" />

<!--style="?android:attr/borderlessButtonStyle"-->
<!--用于去除按鈕的底部陰影效果-->

</RelativeLayout>

整體的樣式.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容