您的位置:首页 > 移动开发 > Android开发

Android编程:悬浮菜单按钮FloatingActionButton实例

2017-05-04 16:50 756 查看
Android编程:悬浮菜单按钮FloatingActionButton实例
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.环境:主机:WIN10开发环境:Android Studio 2.2 Preview 3
说明:用第三方库FloatingActionButton实现悬浮菜单按钮
效果图:


布局:<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bazhangkeji.classroom.session.VoiceSessionActivity">

<com.bazhangkeji.classroom.whiteboard.Whiteboard
android:id="@+id/white_board"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"/>

<LinearLayout
android:id="@+id/layout_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">

<ImageView
android:id="@+id/avatar"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/default_avatar"/>

<TextView
android:id="@+id/call_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:textColor="@color/black"
android:text="正在呼叫..."/>
</LinearLayout>

<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/button_tool_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_margin="2dp"
fab:fab_addButtonColorNormal="@color/white_button"
fab:fab_addButtonColorPressed="@color/white_button_pressed"
fab:fab_addButtonPlusIconColor="@color/half_black"
fab:fab_addButtonSize="normal"
fab:fab_labelStyle="@style/menu_labels_style"
fab:fab_labelsPosition="right" >

<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/button_quit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white_button"
fab:fab_colorPressed="@color/white_button_pressed"
fab:fab_icon="@drawable/ic_call_end_black_48dp"
fab:fab_size="mini"/>

<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/button_tool"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white_button"
fab:fab_colorPressed="@color/white_button_pressed"
fab:fab_icon="@drawable/ic_settings_applications_black_48dp"
fab:fab_size="mini"/>

<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/button_palette"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white_button"
fab:fab_colorPressed="@color/white_button_pressed"
fab:fab_icon="@drawable/ic_color_lens_black_48dp"
fab:fab_size="mini" />

<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/button_camera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white_button"
fab:fab_colorPressed="@color/white_button_pressed"
fab:fab_icon="@drawable/ic_camera_alt_black_48dp"
fab:fab_size="mini" />
</com.getbase.floatingactionbutton.FloatingActionsMenu>
</RelativeLayout>

源码: FloatingActionsMenu buttonToolMenu = (FloatingActionsMenu) findViewById(R.id.button_tool_menu);
FloatingActionButton buttonQuit = (FloatingActionButton) findViewById(R.id.button_quit);
FloatingActionButton buttonPalette = (FloatingActionButton) findViewById(R.id.button_palette);
FloatingActionButton buttonTool = (FloatingActionButton) findViewById(R.id.button_tool);
FloatingActionButton buttonCamera = (FloatingActionButton) findViewById(R.id.button_camera);

dialogClearScreenInit();
dialogPaletteInit();
dialogSelectImageInit();
progressDialogInit();

RxView.clicks(buttonQuit)
.throttleFirst(1, TimeUnit.SECONDS)
.compose(this.bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(v -> {
Voip.getInstance().hangUpCall(callId);
finishActivity();
});

RxView.clicks(buttonPalette)
.throttleFirst(1, TimeUnit.SECONDS)
.compose(this.bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(v -> {
buttonToolMenu.collapse();
dialogPalette.show();
});

RxView.clicks(buttonCamera)
.throttleFirst(1, TimeUnit.SECONDS)
.compose(this.bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(v -> {
buttonToolMenu.collapse();
dialogSelectImage.show();
});
参考链接:futuresimple/android-floating-action-button
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: