ripple 水波紋
5.0之后按鈕會自帶水波紋效果,但是顏色是固定的。而且如果給按鈕設置了背景后,水波紋效果就沒了
如何給按鈕添加自己想要的背景,還要有水波紋效果,還要能夠定義水波紋顏色呢?
首先創建正常的背景xml文件:

此處輸入圖片的描述
然后在res下創建drawable-v21,在里面創建相同的xml文件,然后修改內容如下,添加ripple節點。
ripple節點只能在5.0以后使用,所以需要在drawable-v21里面定義

此處輸入圖片的描述

此處輸入圖片的描述
最終效果圖:

此處輸入圖片的描述
- 第一個按鈕是添加了水波紋并且自定義顏色后的
- 第二個是普通定義背景顏色的(此時沒有水波紋效果)
- 第三個是默認的沒有添加背景的,會自動添加默認效果
也可以使用系統提供的背景(兩種效果,第一種有邊界,第二種沒有):
android:background="?android:attr/selectableItemBackground"
// 波紋超出邊界
android:background="?android:attr/selectableItemBackgroundBorderless"
Palette 調色板
可以從圖片當中提取顏色,先記錄下使用方法:
// 根據上一個界面傳入的圖片資源 ID,獲取圖片的 Bitmap 對象。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), mImgs[position]);
// 創建一個 Pallette 對象
Palette palette = Palette.from(bitmap).generate();
// 提取對應顏色
int color = palette.getVibrantColor(ContextCompat.getColor(this, android.R.color.darker_gray));
可以獲取的顏色分類:
- Vibrant (有活力的)
- Vibrant dark(有活力的 暗色)
- Vibrant light(有活力的 亮色)
- Muted (柔和的)
- Muted dark(柔和的 暗色)
- Muted light(柔和的 亮色)
效果如下:

此處輸入圖片的描述
更多文章歡迎訪問我的博客:https://leonhua.github.io/