聊聊Android5 0中的水波紋效果

2021-07-22 02:43:04 字數 2109 閱讀 8960

水波紋效果已經不是什麼稀罕的東西了,用過5.0新控制項的小夥伴都知道這個效果,可是如果使用乙個textview或者button或者其它普通控制項的話,你是否知道如何給它設定水波紋效果呢?ok,我們今天就來看看這個水波紋效果的實現。水波紋效果的實現有系統自帶屬性可以實現,我們也可以自定義實現效果。

水波紋效果大致上可以分為兩種,一種是有界的,一種無界,我們先來看看有界水波紋效果:

效果:

**:

只需要給textview設定背景即可,背景內容就為系統自帶的selecttableitembackground。這種是有界水波紋,就是水波紋會在textview所在區域進行繪製。

**:

所謂的無界並非完全無界,而是以控制項寬高中最大的數值作為水波紋效果所在正方形的邊界進行繪製。ok,這兩種都是系統自帶的水波紋效果,如果我們想要自定義又該怎麼做呢?

自定義這個效果其實也很簡單,需要在drawable資料夾中定義ripple節點,再設定上顏色就可以了:

<?xml version="1.0" encoding="utf-8"?>

在布局檔案中將之引用為控制項的背景:

顯示效果如下:

ok,大家看到這是無界水波紋。ok,如果想定義有界水波紋又該如何呢?

<?xml version="1.0" encoding="utf-8"?>

有界水波紋需要我們在ripple節點中定義item,item的id要為系統id  mask,然後還要定義drawable,drawable中的顏色並沒有什麼卵用,水波紋的顏色是由ripple節點中的顏色來控制的,看看顯示效果:

我這裡使用了系統自帶的小機械人,我們來看看顯示效果:

自繪shape,來看乙個圓角矩形:

<?xml version="1.0" encoding="utf-8"?>

在ripple中引用該矩形:

<?xml version="1.0" encoding="utf-8"?>

顯示效果:

這種方式我們在shape中定義的顏色只是用來劃定水波紋顯示區域,於檢視顯示上並沒有什麼用。如果你想讓控制項一開始就顯示shape中定義的顏色,可以這樣來定義ripple:

<?xml version="1.0" encoding="utf-8"?>

顯示效果如下:

大家看到,我可以在item中定義shape,那麼可能有小夥伴會想到我是否可以在item中定義selector呢?當然可以。

**:

<?xml version="1.0" encoding="utf-8"?>

顯示效果:

ok,這就是5.0中水波紋效果的使用。

Android5 0新控制項

1.recycleview 使用方法 實現listview,gridview及瀑布流 新增分割線 自定義itemderection 刪除及增加動畫 下拉重新整理 onscrollstatechanged 引數 recyclerview recyclerview,int newstate 正在滾動 p...

android5 0的過度動畫

最近一直研究5.0的過度動畫,網上找了好多帖子 博文,千篇一律,乙個博文或者乙個帖子,引申出好多,然並卵,基本上都說的是一共分成兩種方法 一,實現 fade fade new fade fade.setduration 2000 getwindow setreentertransition fade...

android5 0後的動畫

android5.0以後,系統新增了很多動畫,給我們使用,今天記錄幾個activity的跳轉時候的動畫。1 首先使用動畫,需要在style中新增 windowcontenttransitions true 才能使用動畫。2.1 makecustomanimation 使用者自定義動畫,定位進入,退出...