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

xml:

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

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就不上传了.

效果如下:

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

更多相关文章

  1. Android(安卓)ConstraintLayout 降低布局层次,布局优化首选
  2. Android按钮实现点击事件的四种方式
  3. android TextView控件文字下划线
  4. android实现分享功能
  5. Android中悬浮窗口的实现
  6. Android中解决EditText与NestedScrollView垂直滑动冲突
  7. android之各种布局控件和对话框
  8. Android(安卓)UI中间凸起的Tab(Raised Center Tabbar)
  9. 《Android开发技术周报》笔记

随机推荐

  1. Android(安卓)FFmpeg移植总攻略——获取
  2. Android学习路线(二十四)ActionBar Fragmen
  3. Android 3.0上访问出现 android.os.Netwo
  4. Drawable Resources与Color State List R
  5. 详解四种基本布局 (layout)
  6. Android:adb shell am命令行发送Activity
  7. Android(安卓)Studio提高开发效率必备神
  8. Android IOS平台AE动画库
  9. android NDK学习篇4之two-libs——使用(单
  10. android 点击返回键退出程序的方法