如何使用支持库 23 修复缩放的 FloatingActionButton 上的阴影
Posted
技术标签:
【中文标题】如何使用支持库 23 修复缩放的 FloatingActionButton 上的阴影【英文标题】:How to fix shadow on scaled FloatingActionButton using support library 23 【发布时间】:2016-03-23 19:16:42 【问题描述】:我在 KitKat 设备上使用支持库 23 有一个 FAB。我正在缩放按钮以获得过渡效果(通过将其包含在调整大小视图中)。这基本上与阴影不同,阴影以一种奇怪的形式出现(参见屏幕截图中缩放的红色按钮,蓝色按钮为全尺寸)。
实际发生的情况是阴影位于 4 个“角”位图中,这些位图重叠以产生奇怪的效果。
有谁知道如何解决这个问题?
【问题讨论】:
可能是,缩放时尝试增加fab的高度。 【参考方案1】:这看起来很有趣!
不幸的是,我没有成功尝试重现该问题 - 如果您能提供您运行的代码,那就太好了 - 但这是我为动画和缩放浮动操作按钮编写的代码,如下所示:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.animate().scaleX(0.1f).scaleY(0.1f).setDuration(100).setListener(
new Animator.AnimatorListener()
@Override
public void onAnimationStart(Animator animator)
@Override
public void onAnimationEnd(Animator animator)
fab.setBackgroundTintList(getResources().getColorStateList(R.color.colorPrimary, getTheme()));
fab.setImageDrawable(getResources().getDrawable(R.drawable.common_full_open_on_phone, getTheme()));
fab.animate().scaleX(2).scaleY(2).setListener(null).setDuration(200).start();
@Override
public void onAnimationCancel(Animator animator)
@Override
public void onAnimationRepeat(Animator animator)
).start();
当然,可以调整和改进特定的动画速度和效果。 我希望,它会有所帮助。
【讨论】:
感谢您的回答。我通过调整包含视图的大小以不同的方式为按钮设置动画 - 不确定这是否会产生任何影响。最后,由于时间限制,我最终使用反射来破解动画期间阴影的去除。不是很好,但我唯一能做的就是让它看起来好一半!【参考方案2】:使用缩放属性来调整浮动按钮的大小。阴影会很好
<android.support.design.widget.FloatingActionButton
android:layout_
android:layout_
android:scaleType="center"
android:scaleX="0.75"
android:scaleY="0.75"/>
【讨论】:
以上是关于如何使用支持库 23 修复缩放的 FloatingActionButton 上的阴影的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 iPhone 横向放大/缩小图像的大小? [关闭]
如何在 balkangraph orgchart 中“修复缩放功能”错误?