一個自定義View的懸浮按鈕Lib擴展性良好,懸浮佈局可是配其他佈局
用到了震動所以需要震動權限,該權限已經添加到manifest但是6.0以上需要自己手動添加
<uses-permission android:name="android.permission.VIBRATE" />
使用方法
在layout佈局文件根佈局
<?xml version="1.0" encoding="utf-8"?>
<com.isoftstone.floatlibrary.widget.FloatViewLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_float"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.isoftstone.floatlibrary.widget.FloatViewLayout>
其次需要懸浮按鈕佈局,之所以寫成佈局形式,是因爲拓展新良好,需要任何樣式都可以實現
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="@dimen/floating_icon_size"
android:layout_height="@dimen/floating_icon_size"
android:src="@mipmap/float_btn" />
</LinearLayout>
Activity中只需要調用相關方法即可
public class MainActivity extends AppCompatActivity {
private FloatViewLayout floatViewLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
floatViewLayout = (FloatViewLayout) findViewById(R.id.layout_float);
floatViewLayout.setmFloatView(new FloatViewImpl() {
@Override
public View createFloatView() {
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_float_view, null);
return view;
}
@Override
public int setFloatViewSideOffset() {
return super.setFloatViewSideOffset();
}
@Override
public boolean setEnableBackground() {
return false;
}
});
}
}
FloatViewImpl是一個靜態類已經實現了setFloatViewSideOffset()和setEnableBackground()方法並且給了默認值,可自行修改。
createFloatView()方法:主要是用來創建懸浮按鈕View
setFloatViewSideOffset()方法:是用來設置懸浮按鈕與邊緣偏移量主要是用於縮進一定像素
setEnableBackground()方法:是用來設置是否保留滑動出現背景色並實現消失懸浮按鈕
歡迎進入我的微信公衆號: