Android Support Design 控件 FloatingActionButton

简介:

 经常刚可以看到悬浮控件,比如印象笔记的下面那个绿色的悬浮按钮,这个控件非常简单也是来自Design Support Library中同理需要在Android studio中加入依赖库:design库

具体操作可以参考我前一篇http://blog.csdn.net/xsf50717/article/details/49405309

使用起来也很简单,下面是效果图

最下角是我真机的悬浮按钮,直接忽略吧

首先就是布局文件

[html]  view plain  copy
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     tools:context=".MainActivity">  
  7.   
  8.     <ListView  
  9.         android:id="@+id/id_lv_msgs"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="match_parent"  
  12.   
  13.   
  14.         />  
  15.   
  16.     <android.support.design.widget.FloatingActionButton  
  17.         android:id="@+id/id_fab_toSend"  
  18.         android:layout_width="wrap_content"  
  19.         android:layout_height="wrap_content"  
  20.         android:layout_alignParentBottom="true"  
  21.         android:layout_centerHorizontal="true"  
  22.         android:layout_marginBottom="@dimen/fab_margin"  
  23.         android:src="@drawable/icon_to_send"  
  24.         app:backgroundTint="#0ddcff"  
  25.         app:borderWidth="0dp">  
  26.   
  27.   
  28.     </android.support.design.widget.FloatingActionButton>  
  29.   
  30. </RelativeLayout>  

加入了app空间的一些属性

这里要注意的是:
在5.x的设备上运行,你会发现一些问题(测试系统5.0):
【没有阴影】记得设置app:borderWidth="0dp"。
按上述设置后,阴影出现了,但是竟然有矩形的边界(未设置margin时,可以看出)
需要设置一个margin的值。在5.0之前,会默认就有一个外边距(不过并非是margin,只是效果相同)。
因此

    添加属性app:borderWidth="0dp"
    对于5.x设置一个合理的margin,在values dimen文件
<dimen name="fab_margin">16dp</dimen>

要是还想炫酷点可以在自己设置selector+shape加点特效

主文件也很简单

[java]  view plain  copy
  1. package com.elvis.floatactionbuttondemo;  
  2.   
  3. import android.os.Bundle;  
  4. import android.support.design.widget.FloatingActionButton;  
  5. import android.support.v7.app.AppCompatActivity;  
  6. import android.view.Menu;  
  7. import android.view.MenuItem;  
  8. import android.view.View;  
  9. import android.widget.ArrayAdapter;  
  10. import android.widget.ListView;  
  11. import android.widget.Toast;  
  12.   
  13. public class MainActivity extends AppCompatActivity {  
  14.     private ListView mLvMsgs;  
  15.     private FloatingActionButton mFabToSend;  
  16.   
  17.   
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.activity_main);  
  22.         initViews();  
  23.         intiEvent();  
  24.     }  
  25.   
  26.     private void intiEvent() {  
  27.   
  28.         mFabToSend.setOnClickListener(new View.OnClickListener() {  
  29.             @Override  
  30.             public void onClick(View v) {  
  31.                 Toast.makeText(getApplicationContext(), "CLICK", Toast.LENGTH_SHORT).show();  
  32.             }  
  33.         });  
  34.     }  
  35.   
  36.     private void initViews() {  
  37.         mLvMsgs = (ListView) findViewById(R.id.id_lv_msgs);  
  38.         mFabToSend = (FloatingActionButton) findViewById(R.id.id_fab_toSend);  
  39.         mLvMsgs.setAdapter(new ArrayAdapter<String>(this,R.layout.item_msg,COUNTRIES));  
  40.     }  
  41.     //数据  
  42.     private  static final String[] COUNTRIES=new String[]{"A","B","C","D"};  
  43.   
  44.     @Override  
  45.     public boolean onCreateOptionsMenu(Menu menu) {  
  46.         // Inflate the menu; this adds items to the action bar if it is present.  
  47.         getMenuInflater().inflate(R.menu.menu_main, menu);  
  48.         return true;  
  49.     }  
  50.   
  51.     @Override  
  52.     public boolean onOptionsItemSelected(MenuItem item) {  
  53.         // Handle action bar item clicks here. The action bar will  
  54.         // automatically handle clicks on the Home/Up button, so long  
  55.         // as you specify a parent activity in AndroidManifest.xml.  
  56.         int id = item.getItemId();  
  57.   
  58.         //noinspection SimplifiableIfStatement  
  59.         if (id == R.id.action_settings) {  
  60.             return true;  
  61.         }  
  62.   
  63.         return super.onOptionsItemSelected(item);  
  64.     }  
  65. }  

比较简单,不贴demo了


转载:http://blog.csdn.net/xsf50717/article/details/49407867

目录
相关文章
|
3月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
72 1
|
2月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
40 0
|
3月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
52 3
|
4月前
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
5月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
【7月更文挑战第28天】随着移动应用市场的发展,用户对界面设计的要求不断提高。Material Design是由Google推出的设计语言,强调真实感、统一性和创新性,通过模拟纸张和墨水的物理属性创造沉浸式体验。它注重色彩、排版、图标和布局的一致性,确保跨设备的统一视觉风格。Android Studio提供了丰富的Material Design组件库,如按钮、卡片等,易于使用且美观。
155 1
|
5月前
|
XML 数据格式
Android-自定义三角形评分控件
Android-自定义三角形评分控件
42 0
|
6月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
|
10天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
15天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。