5.0一個新特性就是出現了這么一個圓形的懸浮指示按鈕,這個按鈕可以用來體現一個全局的重要功能,比如添加賬戶什么的。這個按鈕有兩種大小,一種是正常的按鈕大小,一種是小型的按鈕。官方文檔中介紹的是小心的按鈕尺寸僅僅用於配合屏幕上的其他元素制造視覺上的連續性(不理解)。總之我們經常用的是正常的按鈕,小型按鈕就看需求了。從代碼來看,小尺寸的按鈕就是繼承的正常尺寸的按鈕,寫這部分的代碼這也是令我最痛苦的,后來慢慢就好了。所以大家測試的時候,如果正常的按鈕沒有問題,小尺寸的按鈕也絕對沒有什么問題了。
按鈕尺寸的說明:
上面分別為正常尺寸的按鈕和小尺寸的按鈕。注意其中圖片的大小都是24!
一、放入自己的項目
要用這個控件還是得添加開源項目的支持,開源項目地址:
我維護的:https://github.com/shark0017/MaterialDesignLibrary
原版本:https://github.com/navasmdc/MaterialDesignLibrary
大家可以選擇一個下載,反正兩個版本都是我和原作者融合后的東西,差別不大。
添加lib支持后我們就可以用這個控件了,放入布局文件前還是要寫命名空間的。
xmlns:app="http://schemas.android.com/apk/res-auto"
<com.gc.materialdesign.views.ButtonFloat android:id="@+id/button00" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="3dp" />
由於我沒有做可視化的效果,所以在編譯器中沒辦法實時顯示狀態,默認就是一個透明的view。如果大家想在編譯器中看個大概的樣子,可以給它添加個背景和圖片。
實際中的效果:
這個是在2.2模擬器上的效果,和真機的效果是不同的。所以請無視漣漪錯位的情況吧,真機運行不會出現這樣的效果的。
二、在布局文件中設置各種屬性
android:background="@color/orange" 設置按鈕的背景色,默認是藍色
app:animate="true" 設置按鈕有出現的動畫效果,默認沒有。這個動畫可以用來刷存在感
app:iconDrawable="@drawable/ic_launcher" 設置按鈕上的圖片,drawable
app:iconSize="50dp" 按鈕上的圖片的大小,默認是24
app:rippleColor="#ff0000" 設置漣漪的顏色,默認是由背景色生成的暗色調
app:rippleSpeed="2" 漣漪的擴散速度,默認是3
app:clickAfterRipple="false" 設置響應click事件的時間,如果是true是等漣漪擴散完了后再響應click事件
三、通過代碼進行各種設置
public class ButtonFloatTest extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.button_float); ButtonFloat btn01 = (ButtonFloat)findViewById(R.id.button01); btn01.setBackgroundColor(getResources().getColor(R.color.orange));// 設定按鈕背景 btn02.setBackgroundColor(0xffff0000);// 設定按鈕背景 btn03.setIconDrawable(getResources().getDrawable(R.drawable.ic_launcher));// 設定按鈕的圖片 btn04.setIconDrawable(getResources().getDrawable(R.drawable.ic_launcher));// 設定按鈕的圖片 btn04.setIconSize(50);// 設置圖片大小 btn05.setRippleColor(0xffff0000);// 設置漣漪顏色 btn06.setRippleColor(getResources().getColor(R.color.orange));// 設置漣漪顏色 btn07.setRippleSpeed(2);// 設置漣漪擴散速度 btn08.setClickAfterRipple(false);// 設置點擊后立刻響應click事件 btn09.isAnimate(true);// 設置有動畫效果 } }
四、小尺寸的圓形懸浮按鈕
這個按鈕和大尺寸的一樣,用的時候換個類名就行了。下面給一個簡單的例子,詳細的就不說了~
<com.gc.materialdesign.views.ButtonFloatSmall android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="3dp" />