当前位置:  开发笔记 > 编程语言 > 正文

Android:使用更大的图标创建更大的浮动操作按钮

如何解决《Android:使用更大的图标创建更大的浮动操作按钮》经验,为你挑选了3个好方法。

我想创建一个更大的浮动动作按钮(FAB),超过通常的56 dp,里面有一个更大的图标.(为了我的目的,一个图标永远不会自我解释,所以我将创建一个包含短文本的png文件,并使用此png作为图标.)

增加FAB的大小可以正常工作:
因为我不使用mini-FloatingActionButton,我重新定义了迷你按钮大小.
在我的layout-xml中我指定:



dimensions.xml中,我重新定义了mini-fab的大小:

80dp

但是,我没有设法在FAB上获得更大的图标.我在材料图标库中尝试了不同dp的图标 - 没有成功.在FAB布局上设置填充也不起作用.

有什么建议?谢谢!



1> 小智..:

您可以尝试在以下位置重新定义fab图像大小的最大大小dimensions.xml:


    80dp
    48dp

必须确保覆盖设计库中的原始资源.尝试design_fab_image_size而不是design_fab_content_size如果这不适合你.

小心使用,因为这是一个黑客而不是一个实际的解决方案.如果在将来的Design Library版本中更改了资源的名称,则解决方案可能无效.我的意见是坚持设计库中定义的大小,因为它是基于Material Design的推荐设计指南,使您的整体应用看起来很好.


如果有人想知道,你可以在这里找到维度名称:https://android.googlesource.com/platform/frameworks/support.git/+/master/design/res/values/dimens.xml,看起来确实是` design_fab_image_size`

2> Dog Lover..:

我偶然发现了这个,然后通过反复试验找到答案.看来,可以增加浮动操作按钮的大小,如果您同时设置layout:widthlayout:heightmatch_parent和在的FrameLayout(包住浮动操作按钮没有要,但有道理的,因为你只是想设置的大小按钮).

然后将FrameLayout的宽度和高度设置为您想要的任何值.

我赞成了Grace Coder的答案,因为它确实解决了这个问题,但我认为这种方法更安全,可能更理想.



    

您可以在我拍摄的屏幕截图中看到差异:

在此输入图像描述

顶级FAB使用我的代码/解决方法,而底部FAB使用标准(大多数不可更改)维度.


如果有多个FAB按钮并且只需要增加一个按钮,则可以提供更好的解决方案.
此解决方案会在棒棒糖之前的设备上产生视觉伪像,有关详细信息,请参见[我的答案](/sf/ask/17360801/)。

3> gmk57..:

从设计支持库27.1.0开始,有一种设置自定义FAB大小的官方方法:app:fabCustomSizeXML属性和相应的setCustomSize方法.为了增加图标大小,您可以使用android:scaleType="center"更大的drawable.更新: android:scaleType现在已经坏了,请fab.setScaleType(ImageView.ScaleType.CENTER)改用.

其他提出的解决方案有一些缺点:

重新定义默认FAB维度不能应用于单个按钮,并且本质上是一个黑客(使用可能会发生变化的非公共API).

在FrameLayout中包装FAB(或仅设置FAB layout_widthlayout_height所需的大小,具有相同的效果)在Lollipop前设备上看起来非常糟糕.更新:现在也在Lollipop之后(见下面的截图).

设置scaleXscaleY需要调整边距(因为视觉FAB尺寸现在与其布局尺寸不匹配)并缩放不可缩放的部分:按钮边框和(前Lollipop)阴影宽度.

在API 19(左)和API 21(右)上呈现的示例布局:

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有