Android踩坑日记:FloatingActionButton的设置大小问题

2024-04-26 11:58

本文主要是介绍Android踩坑日记:FloatingActionButton的设置大小问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  • 基本使用

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

compile 'com.android.support:design:25.0.0'

2,FAB基本属性

  <android.support.design.widget.FloatingActionButtonandroid:id="@+id/fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="20.0dip"android:onClick="click"android:src="@mipmap/ic_launcher"app:backgroundTint="#30469b"app:borderWidth="0.0dip"app:elevation="5.0dip"app:fabSize="normal"app:layout_anchor="@id/container"app:layout_anchorGravity="right|bottom"app:pressedTranslationZ="10.0dip"app:rippleColor="#a6a6a6" />app:backgroundTint - 设置FAB的背景颜色。
app:rippleColor - 设置FAB点击时的背景颜色。
app:borderWidth - 该属性尤为重要,如果不设置0dp,那么在4.1的sdk上FAB会显示为正方形,而且在5.0以后的sdk没有阴影效果。所以设置为borderWidth="0dp"app:elevation - 默认状态下FAB的阴影大小。
app:pressedTranslationZ - 点击时候FAB的阴影大小。
app:fabSize - 设置FAB的大小,该属性有两个值,分别为normal和mini,对应的FAB大小分别为56dp和40dp。
android:src - 设置FAB的图标,Google建议符合Design设计的该图标大小为24dp。
app:layout_anchor - 设置FAB的锚点,即以哪个控件为参照点设置位置。
app:layout_anchorGravity - 设置FAB相对锚点的位置,值有 bottom、center、right、left、top等。

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

项目中的浮动按钮

然后我把那个大笔的切图放进FloatingActionButton中时,发现现实不对劲
这里写图片描述

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

    <android.support.design.widget.FloatingActionButtonandroid:id="@+id/m_main_fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="16dp"android:src="@drawable/m_main_new_article_icon"app:borderWidth="0.0dip"app:fabSize="normal"app:backgroundTint="@color/m_main_green"android:clickable="true"app:layout_anchor="@id/m_main_recycleview"app:layout_anchorGravity="bottom|right"/>

后来查阅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”会把中间的小图放到最大。

 <android.support.design.widget.FloatingActionButton
        android:id="@+id/m_main_fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="16dp"android:src="@drawable/m_main_new_article_icon"app:borderWidth="0.0dip"app:fabSize="normal"app:backgroundTint="@color/m_main_green"android:clickable="true"app:layout_anchor="@id/m_main_recycleview"app:layout_anchorGravity="bottom|right"android:scaleType="center"/><!--  添加android:scaleType="center"会把中间的小图放到最大-->

效果图:

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

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

  • 协调动画
    暂更…
    查阅资源:
    1,Floating Action Button-Android M新控件
    2,【Android - 控件】之MD - FloatingActionButton的使用
    3,Android FloatingActionButton(FAB) 悬浮按钮

这篇关于Android踩坑日记:FloatingActionButton的设置大小问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937529

相关文章

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me