FloatingActionButton的使用

2023-11-06

FloatingActionButton(FAB) 是 Android 5.0 新特性——Material Design 中的一个控件,是一种悬浮的按钮。FloatingActionButton 是 ImageView 的子类,因此它具备ImageView的全部属性

  • 基本使用

1,需要在gradle文件中先注册依赖:

<span style="color:#000000"><code>compile <span style="color:#009900">'com.android.support:design:25.0.0'</span></code></span>

2,FAB基本属性

<span style="color:#000000"><code>  <android<span style="color:#009900">.support</span><span style="color:#009900">.design</span><span style="color:#009900">.widget</span><span style="color:#009900">.FloatingActionButton</span>
        android:id=<span style="color:#009900">"@+id/fab"</span>
        android:layout_width=<span style="color:#009900">"wrap_content"</span>
        android:layout_height=<span style="color:#009900">"wrap_content"</span>
        android:layout_margin=<span style="color:#009900">"20.0dip"</span>
        android:onClick=<span style="color:#009900">"click"</span>
        android:src=<span style="color:#009900">"@mipmap/ic_launcher"</span>
        app:backgroundTint=<span style="color:#009900">"#30469b"</span>
        app:borderWidth=<span style="color:#009900">"0.0dip"</span>
        app:elevation=<span style="color:#009900">"5.0dip"</span>
        app:fabSize=<span style="color:#009900">"normal"</span>
        app:layout_anchor=<span style="color:#009900">"@id/container"</span>
        app:layout_anchorGravity=<span style="color:#009900">"right|bottom"</span>
        app:pressedTranslationZ=<span style="color:#009900">"10.0dip"</span>
        app:rippleColor=<span style="color:#009900">"#a6a6a6"</span> />

app:backgroundTint - 设置FAB的背景颜色。
app:rippleColor - 设置FAB点击时的背景颜色。
app:borderWidth - 该属性尤为重要,如果不设置<span style="color:#006666">0</span>dp,那么在<span style="color:#006666">4.1</span>的sdk上FAB会显示为正方形,而且在<span style="color:#006666">5.0</span>以后的sdk没有阴影效果。所以设置为borderWidth=<span style="color:#009900">"0dp"</span>。
app:elevation - 默认状态下FAB的阴影大小。
app:pressedTranslationZ - 点击时候FAB的阴影大小。
app:fabSize - 设置FAB的大小,该属性有两个值,分别为normal和mini,对应的FAB大小分别为<span style="color:#006666">56</span>dp和<span style="color:#006666">40</span>dp。
android:src - 设置FAB的图标,Google建议符合Design设计的该图标大小为<span style="color:#006666">24</span>dp。
app:layout_anchor - 设置FAB的锚点,即以哪个控件为参照点设置位置。
app:layout_anchorGravity - 设置FAB相对锚点的位置,值有 bottom、center、right、left、top等。</code></span>

 

3,我的问题 
咋一看,就是把FloatingActionButton添加到布局文件设置好位置和图标就行,在项目中,设计给了这样的切图标注。 

项目中的浮动按钮


然后我把那个大笔的切图放进FloatingActionButton中时,发现现实不对劲 

这里写图片描述


图片严重缩小了我的xml代码

 

<span style="color:#000000"><code>    <android<span style="color:#009900">.support</span><span style="color:#009900">.design</span><span style="color:#009900">.widget</span><span style="color:#009900">.FloatingActionButton</span>
        android:id=<span style="color:#009900">"@+id/m_main_fab"</span>
        android:layout_width=<span style="color:#009900">"wrap_content"</span>
        android:layout_height=<span style="color:#009900">"wrap_content"</span>
        android:layout_margin=<span style="color:#009900">"16dp"</span>
        android:src=<span style="color:#009900">"@drawable/m_main_new_article_icon"</span>
        app:borderWidth=<span style="color:#009900">"0.0dip"</span>
        app:fabSize=<span style="color:#009900">"normal"</span>
        app:backgroundTint=<span style="color:#009900">"@color/m_main_green"</span>

        android:clickable=<span style="color:#009900">"true"</span>
        app:layout_anchor=<span style="color:#009900">"@id/m_main_recycleview"</span>
        app:layout_anchorGravity=<span style="color:#009900">"bottom|right"</span>
        /></code></span>

后来查阅Material Design规范http://wiki.jikexueyuan.com/project/material-design/components/buttons-floating-action-button.html ,https://material.io/guidelines/components/buttons-floating-action-button.html#, 
可以看出官方推荐中间建议使用24x24dp的小图,如加号,分享,叉叉等 
根据谷歌的设计规范,drawable的尺寸应该是24dp。 

fabSize=normal
fabSize=mini

 

本来以为设计给的图不对,后来发现及时设计将那个笔的图切成24dp*24dp,我放进去页会显得很小,不好看,后来经过师父帮忙发现设置android:scaleType=”center”会把中间的小图放到最大。

<span style="color:#000000"><code> <span style="color:#006666"><<span style="color:#4f4f4f">android.support.design.widget.FloatingActionButton
</span>        <span style="color:#4f4f4f">android:id</span>=<span style="color:#009900">"@+id/m_main_fab"</span>
        <span style="color:#4f4f4f">android:layout_width</span>=<span style="color:#009900">"wrap_content"</span>
        <span style="color:#4f4f4f">android:layout_height</span>=<span style="color:#009900">"wrap_content"</span>
        <span style="color:#4f4f4f">android:layout_margin</span>=<span style="color:#009900">"16dp"</span>
        <span style="color:#4f4f4f">android:src</span>=<span style="color:#009900">"@drawable/m_main_new_article_icon"</span>
        <span style="color:#4f4f4f">app:borderWidth</span>=<span style="color:#009900">"0.0dip"</span>
        <span style="color:#4f4f4f">app:fabSize</span>=<span style="color:#009900">"normal"</span>
        <span style="color:#4f4f4f">app:backgroundTint</span>=<span style="color:#009900">"@color/m_main_green"</span>

        <span style="color:#4f4f4f">android:clickable</span>=<span style="color:#009900">"true"</span>
        <span style="color:#4f4f4f">app:layout_anchor</span>=<span style="color:#009900">"@id/m_main_recycleview"</span>
        <span style="color:#4f4f4f">app:layout_anchorGravity</span>=<span style="color:#009900">"bottom|right"</span>

        <span style="color:#4f4f4f">android:scaleType</span>=<span style="color:#009900">"center"</span>

        /></span><span style="color:#880000"><!--  添加android:scaleType="center"会把中间的小图放到最大--></span></code></span>

效果图: 

添加android:scaleType="center"会把中间的小图放到最大

 

官方建议,使用FloatingActionButton 结合 CoordinatorLayout 使用,即可实现悬浮在任意控件的任意位置。同时可以实现与CoordinatorLayout 内的其他view协调动画。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FloatingActionButton的使用 的相关文章

  • Android studio 分析内存泄漏

    http www cnblogs com kelina2mark p 6140658 html
  • Android软件开发之获取通讯录联系人 联系人图像

    Android软件开发之获取通讯录联系人信息 十二 发布于2011 10 12 图中选中的数据库 contacts2 db就是系统储存联系人的数据库 我们将它打开看看里面储存了些什么东东 打开contacts db后 发面里面有一堆表 同学
  • Android studio将一个项目作为module导入另一个项目

    1 把要导入的项目变为module 把项目build gradle文件下的 apply plugin com android application 改为 apply plugin com android library 同时删除文件中的
  • UncaughtExceptionHandler加Process 让应用程序不异常崩溃退出

    我们在开发应用程序时难免会遇到出现没有被try catch抓住的RunTimeException信息 从而导致程序异常崩溃退出 大大的影响了用户体验 那么有没有什么方法能避免这一现象呢 网上一查资料 果然有 UncaughtExceptio
  • Android file类使用详解

    一 Android file类 在开发Android应用时免不了会跟文件打交道 本篇文章记录总结自己常用到的文件操作 数据的存储有多种方式 比如数据库存储 SharedPreferences存储 文件存储等 这里我们将要介绍最简单的文件存储
  • 【Android】WebView控件最全使用解析

    WebView控件最全使用解析 一 WebView 概述 二 WebView使用基础篇 2 1添加方式 2 2 加载远程网页 2 3 加载本地网页 2 4 加载HTML片段 2 5 WebView 常用方法 三 WebView 进阶篇 3
  • Android(java方法)上实现mp4的分割和拼接 (二)

    http blog csdn net banking17173 article details 20646251 这节谈一下如何在Android上实现mp4文件的高效率切割 业务需求举例 把一段2分钟的mp4文件切割出00 42 至 01
  • Android Studio连接夜神模拟器

    Android Studio连接夜神模拟器 一 下载夜神模拟器 二 夜神模拟器连接Android Studio 三 其他操作 3 1 屏幕旋转 3 2 创建其他模拟器 一 下载夜神模拟器 官网 https www yeshen com 下载
  • Android中定时执行任务的3种实现方法

    在Android开发中 定时执行任务的3种实现方法 一 采用Handler与线程的sleep long 方法 不建议使用 java的实现方式 二 采用Handler的postDelayed Runnable long 方法 最简单的andr
  • Android 开发最佳实践

    https github com futurice android best practices blob master translations Chinese README cn md 组织好它们 在layoutout XMLs布局时
  • Adapter 适配器基础讲解

    Adapter 适配器基础讲解 1 MVC模式的简单理解 在开始学习 Adapter 之前我们要来了解下这个 MVC 模式概念 举个例子 大型的商业程序通常由多人一同开 发完成 比如有人负责操作接口的规划与设计 有人负责程序代码的编写如果要
  • 『Android Studio』用Fragment实现一个简易新闻浏览界面

    Fragment意思为碎片 片段 在Android中有些Activity在手机上看起来很美观 但放在屏幕更大的平板类的设备上 可能就不一样了 而Fragment能在一个Activity中内嵌多个独立的小Activity 有效的解决了app在
  • Android 架构设计的思想与原则是什么?

    http www zhihu com question 19717380
  • Android基础-Service和IntentService知识点详细总结

    Service 对于广大的Android开发者来说算是耳熟能详了 作为Android的四大组件之一 在我们的开发中也起着重要的作用 在Android面试中 Service相关的问题也是面试官问得比较多的 当别人问你 Service 到底是什
  • 实现一个Android锁屏App的难点总结

    http blog csdn net ldld1717 article details 69389125 https segmentfault com a 1190000007157971 自定义一个漂亮实用的锁屏app 如果能赢得用户的认
  • adb logcat命令查看并过滤android输出log

    http blog csdn net hansel article details 38088583 cmd命令行中使用adb logcat命令查看Android系统和应用的log dos窗口按ctrl c中断输出log记录 logcat日
  • 【Android】SDK环境变量配置

    目录 第一步 找到SDK路径 第二步 配置环境变量 第三步 测试是否配好环境变量 第一步 找到SDK路径 然后再找到此文件夹 第二步 配置环境变量 在我的电脑右键点击属性 在系统变量中新建ANDROID HOME的变量名 变量值填入第一步找
  • 关于TextView和ImageView的背景及透明设置小结

    关于TextView和ImageView的背景及透明设置小结 关于ImageView的相关设置 设置背景颜色 ImageView setBackgroundColor android graphics Color parseColor f3
  • ndk错误总结

    1 ndk Unresolved inclusion
  • 多线程下载文件(支持暂停、取消、断点续传)

    多线程下载文件 支持暂停 取消 断点续传 多线程同时下载文件即 在同一时间内通过多个线程对同一个请求地址发起多个请求 将需要下载的数据分割成多个部分 同时下载 每个线程只负责下载其中的一部分 最后将每一个线程下载的部分组装起来即可 涉及的知

随机推荐

  • vue3.2 父子组件传参

    父组件father vue 子组件child vue 1 父传子 把子组件引入到父组件里 定义数据 然后在子组件里使用props接收数据 father vue
  • python已知两边求第三边_探究“已知一个三角形两边及其夹角,求第三边”的问题...

    探究 已知一个三角形两边及其夹角求第三边 的问题 知识点 余弦定理 对应版本章节 本节课是人民教育出版社出版的高中数学 A 版数学必修 5 第一章 解三角 形 第一节第二课时余弦定理的内容 教学目标 1 理解利用向量猜想证明余弦定理 2 掌
  • 下载及安装Python详细步骤

    安装python分三个步骤 下载python 安装python 检查是否安装成功 1 下载Python 1 python下载地址https www python org downloads 2 选择下载的版本 3 点开Download后 找
  • NXP i.MX6ULL 移植python3.9.5

    项目场景 在眺望电子TW AC6G EVM开发板上移植python3 9 5 编译环境及开发包 主机 ubuntu18 04 交叉编译器 arm linux gnueabihf gcc QT5 12 8 qt everywhere open
  • pytorch用LeNet5识别Mnist手写体数据集(训练+预测单张输入图片代码)

    首先 在论文上的LeNet5的结构如下 由于论文的数据集是32x32的 mnist数据集是28x28的 所有只有INPUT变了 其余地方会严格按照LeNet5的结构编写程序 训练代码 import torch import torch nn
  • 搜索学习心得

    在学习了众多搜索的方式后 不由感慨 啊 太巨了 今天huayucaiji我就给大家讲一讲C 搜索的心得吧 深度优先搜索 广度优先搜索 迭代加深搜索 一个一个讲吧 深度优先搜索 深度优先搜索 下简称 深搜 简称DFS 是简洁明了的搜索方式 以
  • (三)字典

    一 什么是 字典 字典是Python语言中唯一的映射类型 它的本质是key和value以及其对应关系的一种集合 一个key可以对应一个多个value 例如以下变量info为字典类型 info name 班长 id 100 sex f add
  • android-WebView加载本地html、本apk内html和远程URL

    WebView 网络视图 能加载显示网页 可以将其视为一个浏览器 它使用了WebKit渲染引擎加载显示网页 实现WebView有以下两种不同的方法 第一种方法的步骤 1 在要Activity中实例化WebView组件 WebView web
  • python爬取数据并将其存入mongodb

    其实很早就想知道如何将爬取到的数据存入数据库 并且实现前后台的交互功能 昨天刚刚看了一集关于爬数据并存数据的视频 今天 在这里总结一下 以下为最终所需要爬取的信息 由于需要爬取所有的二手商品信息 所以以下内容也要爬取到 1 先写一个py文件
  • 使用golang对excel进行数据读取

    golang对excel进行数据读取 在使用golang对excel进行表格数据读取时 发现已有的方式读取比较麻烦 代码量多 相比python中的pandas比较麻烦 所以对excel数据读取进行了一个简单的封装 1 导包 执行 go ge
  • MobaXterm远程连接虚拟机的Network error: Connection timed out

    1 遇到的问题 虚拟机中linux能联网 但是远程连接时提示Network error Connection timed out 这个问题烦了我好一会 我Ubuntu是双网卡 一个NAT 一个桥接 这个是为了连接开发板的 使用桥接网卡的IP
  • python高阶

    面向对象 class Employee 所有员工的基类 empCount 0 def init self name salary self name name self salary salary Employee empCount 1 d
  • 非负数的和与个数c语言编程,C语言习题中,编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和...

    这里面主要有2个比较大的问题 1 相关变量没有初始化对于程序中求和变量sum 统计个数变量co 由热心网友提供的答案1 includeint main int a 20 i include stdio h 第5 15行应为 for i 0
  • 基于遗传算法的题库组卷自动化批改练习系统

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目 基于遗传算法的题库组卷练习系统 计算机毕业生设计 课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代 随着信息技术和网络技术的发展 信息化已经渗透到人们日常生活的各个方
  • Flask Jinja2 模板中的变量和过滤器

    Flask Jinja2 模板中的变量和过滤器 Flask 可以在视图函数中返回模板文件 模板引擎默认使用的是 Jinja2 通常 返回的 Jinja2 模板文件并不是一个静态的页面 而是同时有静态部分和动态部分 静态部分可以硬编码写死 动
  • 用pe做2012服务器系统教程,微软WDS网络启动PE做系统的服务器配置和PE修改教程...

    本帖最后由 金正电脑 于 2018 10 19 15 45 编辑 继续主楼内容 三 网络PE的修改定制 1 PE的来源 我用的是PE大神hhh333的PE修改的 这个PE自带网卡驱动进入PE自动安装好 不需要手动安装 也有个别网卡驱动不上的
  • 服务器和网站域名,网站服务器和域名的区别

    网站服务器和域名的区别 内容精选 换一换 华为云漏洞扫描服务帮助中心 为用户提供产品简介 用户指南 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用漏洞扫描服务 目前 华为云SSL证书管理服务提供了OV 企业版 OV Pro 企业
  • PyCharm 2023.1.2版本关闭后一直显示正在关闭项目

    最近下载了新的社区版本 出现了关闭程序就一直显示关闭项目的问题 然后各种找方法 试了如下几种 1 调整了一下编码方式 都0变为UTF 8 然后在自然语言添加了中文 也在编辑器那一行里 2 这个问题可能是由于Pycharm在关闭时正在运行一些
  • ubuntu下安装hadoop和eclipse

    hadoop安装方法 https www cnblogs com oskyhg p 9150000 html hadoop 安装教程 本教程由厦门大学数据库实验室 给力星出品 转载请注明 本教程适合于原生 Hadoop 2 包括 Hadoo
  • FloatingActionButton的使用

    FloatingActionButton FAB 是 Android 5 0 新特性 Material Design 中的一个控件 是一种悬浮的按钮 FloatingActionButton 是 ImageView 的子类 因此它具备Ima