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

目录
相关文章
|
8月前
|
XML 搜索推荐 Android开发
Android改变进度条控件progressbar的样式(根据源码修改)
本文介绍了如何基于Android源码自定义ProgressBar样式。首先分析了系统源码中ProgressBar样式的定义,发现其依赖一张旋转图片实现动画效果。接着分两步指导开发者实现自定义:1) 模仿源码创建一个旋转动画XML文件(放置在drawable文件夹),修改图片为自定义样式;2) 在UI控件中通过`indeterminateDrawable`属性应用该动画。最终实现简单且个性化的ProgressBar效果,附带效果图展示。
556 2
|
8月前
|
Android开发
Android控件样式的抽取(小提及快捷方式)
在Android开发中,若多个控件样式重复,可抽取公共部分以简化代码。例如对EditText提取样式,通过编辑`styles.xml`实现复用。为提高效率,Android Studio提供自动提取Style功能:右键点击控件样式选项,选择“Style...”,勾选需要提取的属性后确认,即可快速生成样式代码,显著提升开发便利性。
255 2
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
416 1
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
195 3
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
148 0
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
【7月更文挑战第28天】随着移动应用市场的发展,用户对界面设计的要求不断提高。Material Design是由Google推出的设计语言,强调真实感、统一性和创新性,通过模拟纸张和墨水的物理属性创造沉浸式体验。它注重色彩、排版、图标和布局的一致性,确保跨设备的统一视觉风格。Android Studio提供了丰富的Material Design组件库,如按钮、卡片等,易于使用且美观。
628 1
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
3月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
359 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
3月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
362 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡