Android中FloatingActionButton实现悬浮按钮实例

Android中FloatingActionButton(悬浮按钮) 使用不是特别多,常规性APP应用中很少使用该控件. 当然他的使用方法其实很简单.直接上代码:

xml:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <CheckBox android:id="@+id/cbDelay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:text="delay" /> <RelativeLayout android:id="@+id/rlAddBill" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_below="@+id/fab01Add" android:layout_marginLeft="10dp" android:background="#00000000" android:visibility="gone"> <LinearLayout android:id="@+id/ll01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_below="@+id/ll02" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_toLeftOf="@+id/miniFab01" android:layout_weight="1" android:gravity="right" android:paddingBottom="5dp" android:text="销售单" android:textColor="@android:color/white" android:textSize="15sp" android:visibility="gone" /> <android.support.design.widget.FloatingActionButton android:id="@+id/miniFab01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="25dp" android:src="@mipmap/btn_play_normal" app:backgroundTint="@color/colorAccent" app:elevation="5dp" app:fabSize="mini" /> </LinearLayout> <LinearLayout android:id="@+id/ll02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_below="@+id/ll03" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_toLeftOf="@+id/miniFab02" android:layout_weight="1" android:gravity="right" android:paddingBottom="5dp" android:text="销售退货" android:textColor="@android:color/white" android:textSize="15sp" android:visibility="gone" /> <android.support.design.widget.FloatingActionButton android:id="@+id/miniFab02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="25dp" android:src="@mipmap/btn_play_normal" app:backgroundTint="@color/colorAccent" app:elevation="5dp" app:fabSize="mini" /> </LinearLayout> <LinearLayout android:id="@+id/ll03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_toLeftOf="@+id/miniFab02" android:layout_weight="1" android:gravity="right" android:paddingBottom="5dp" android:text="收款单" android:textColor="@android:color/white" android:textSize="15sp" android:visibility="gone" /> <android.support.design.widget.FloatingActionButton android:id="@+id/miniFab03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="25dp" android:src="@mipmap/btn_play_normal" app:backgroundTint="@color/colorAccent" app:elevation="5dp" app:fabSize="mini" /> </LinearLayout> </RelativeLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab01Add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_below="@+id/cbDelay" android:layout_marginRight="15dp" android:layout_marginTop="22dp" android:src="@mipmap/btn_play_normal" app:backgroundTint="#31bfcf" app:elevation="5dp" app:fabSize="normal" app:rippleColor="#e7d161" /> </RelativeLayout>

MainActivity:

package com.example.liupanpan.floatingactionbuttondemo; import android.animation.AnimatorInflater; import android.animation.AnimatorSet; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.CheckBox; import android.widget.LinearLayout; import android.widget.RelativeLayout; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private CheckBox cbDelay; private FloatingActionButton fab01Add; private boolean isAdd = false; private RelativeLayout rlAddBill; private int[] llId = new int[]{R.id.ll01, R.id.ll02, R.id.ll03}; private LinearLayout[] ll = new LinearLayout[llId.length]; private int[] fabId = new int[]{R.id.miniFab01, R.id.miniFab02, R.id.miniFab03}; private FloatingActionButton[] fab = new FloatingActionButton[fabId.length]; private AnimatorSet addBillTranslate1; private AnimatorSet addBillTranslate2; private AnimatorSet addBillTranslate3; private AnimatorSet addBillTranslate4; private AnimatorSet addBillTranslate5; private AnimatorSet addBillTranslate6; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.basic_fab_activity); initView(); setDefaultValues(); bindEvents(); } private void initView() { cbDelay = (CheckBox) findViewById(R.id.cbDelay); fab01Add = (FloatingActionButton) findViewById(R.id.fab01Add); rlAddBill = (RelativeLayout) findViewById(R.id.rlAddBill); for (int i = 0; i < llId.length; i++) { ll[i] = (LinearLayout) findViewById(llId[i]); } for (int i = 0; i < fabId.length; i++) { fab[i] = (FloatingActionButton) findViewById(fabId[i]); } } private void setDefaultValues() { addBillTranslate1 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim); addBillTranslate2 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim); addBillTranslate3 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim); // addBillTranslate4 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim); // addBillTranslate5 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim); // addBillTranslate6 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim); } private void bindEvents() { fab01Add.setOnClickListener(this); for (int i = 0; i < fabId.length; i++) { fab[i].setOnClickListener(this); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.fab01Add: fab01Add.setImageResource(isAdd ? R.mipmap.ic_launcher_round : R.mipmap.ic_launcher_round); isAdd = !isAdd; rlAddBill.setVisibility(isAdd ? View.VISIBLE : View.GONE); if (isAdd) { addBillTranslate1.setTarget(ll[0]); addBillTranslate1.start(); addBillTranslate2.setTarget(ll[1]); addBillTranslate2.setStartDelay(cbDelay.isChecked() ? 50 : 0); addBillTranslate2.start(); addBillTranslate3.setTarget(ll[2]); addBillTranslate3.setStartDelay(cbDelay.isChecked() ? 100 : 0); addBillTranslate3.start(); // addBillTranslate4.setTarget(ll[3]); // addBillTranslate4.setStartDelay(cbDelay.isChecked() ? 250 : 0); // addBillTranslate4.start(); // addBillTranslate5.setTarget(ll[4]); // addBillTranslate5.setStartDelay(cbDelay.isChecked() ? 300 : 0); // addBillTranslate5.start(); // addBillTranslate6.setTarget(ll[5]); // addBillTranslate6.setStartDelay(cbDelay.isChecked() ? 350 : 0); // addBillTranslate6.start(); } break; case R.id.miniFab01: hideFABMenu(); break; case R.id.miniFab02: hideFABMenu(); break; case R.id.miniFab03: hideFABMenu(); break; default: break; } } private void hideFABMenu() { rlAddBill.setVisibility(View.GONE); fab01Add.setImageResource(R.mipmap.ic_launcher_round); isAdd = false; } }

运行程序,就可以实现当前的效果.问题XML的图片请自己替换一下,demo就不上传了.

效果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-10-25 12:23:42

Android中FloatingActionButton实现悬浮按钮实例的相关文章

Android中实现图文并茂的按钮实例代码

效果图如下所示: 代码: <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:gravity="center" android:background="#8

Android 中FloatingActionButton(悬浮按钮)实例详解

Android 中FloatingActionButton(悬浮按钮)实例详解 一.介绍 这个类是继承自ImageView的,所以对于这个控件我们可以使用ImageView的所有属性 二.使用准备, 在as 的 build.grade文件中写上 compile 'com.android.support:design:22.2.0' 三.使用说明 <android.support.design.widget.FloatingActionButton android:id="@+id/floa

Android开发模仿qq视频通话悬浮按钮(实例代码)

模仿qq视频通话的悬浮按钮的实例代码,如下所示: public class FloatingWindowService extends Service{ private static final String TAG="OnTouchListener"; private static View mView = null; private static WindowManager mWindowManager = null; private static Context mContext

监听事件-android中如何按同一个按钮,变换不同的颜色

问题描述 android中如何按同一个按钮,变换不同的颜色 android中如何按同一个按钮,变换不同的颜色 现在我只懂将一个按钮设置监听,调用setbackgroudcolor方法变换一种颜色 如何设置分别按五次 变换 绿色 红色 黄色 紫色 黑色 五种颜色 解决方案 设置一个颜色数组,每点击变化一个就行了 解决方案二: public static int counts = 0; button1 = (Button)findViewById(R.id.button1); final int[]

Android中activity跳转按钮事件的四种写法_Android

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i

Android 中Lambda表达式的使用实例详解

Android 中Lambda表达式的使用实例详解 Java8 中着实引入了一些非常有特色的功能,如Lambda表达式.streamAPI.接口默认实现等等.Lambda表达式在 Android 中最低兼容到 Android2.3 系统,兼容性还是不错的,Lambda表达式本质上是一种匿名方法,它既没有方法名,也没有访问修饰符和返回值类型,使用它编写的代码将更加简洁易读. 1.Lambda表达式的基本写法 如果想要在 Android 项目中使用 Lambda表达式 或者 Java8 的其他新特性

Android中activity跳转按钮事件的四种写法

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i

如何在Android中实现渐显按钮的左右滑动效果_Android

先看下运行效果:    程序结构: MainActivity文件中代码: 复制代码 代码如下: package com.android.buttonpageflipper;import android.app.Activity;import android.graphics.PixelFormat;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Gra

Android中TelephonyManager类的方法实例分析_Android

本文实例讲述了Android中TelephonyManager类的方法.分享给大家供大家参考.具体如下: TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取相关数据. TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,需要注意的是有些通讯