【问题标题】:Android: Make Fade Out Animation For Multiple Buttons More SmoothAndroid:让多个按钮的淡出动画更流畅
【发布时间】:2013-04-30 01:30:05
【问题描述】:

是否可以平滑地制作多个按钮的淡出动画?

创建了fadeout.xml @res/anim

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:duration="1500"
    android:repeatCount="infinite" />
</set>

用它来设置动画

Animation fadeout = AnimationUtils.loadAnimation(this, R.anim.fadeout);

并在点击后将动画应用于某些按钮

public void click (View v){
     button1.startAnimation(fadeout);
     button2.startAnimation(fadeout);
     button3.startAnimation(fadeout);
     button4.startAnimation(fadeout);
     button5.startAnimation(fadeout);
     button6.startAnimation(fadeout);
     button7.startAnimation(fadeout);
     button8.startAnimation(fadeout);
     button9.startAnimation(fadeout);
     button10.startAnimation(fadeout);
     button11.startAnimation(fadeout);
     button12.startAnimation(fadeout);
     button13.startAnimation(fadeout);
     button14.startAnimation(fadeout);
     button15.startAnimation(fadeout);
}

应用于3-5个按钮时没有问题,但是当应用于像上面这样的许多按钮时,它就变得迟钝了。

那么有没有办法让这个动画应用到许多按钮上而不会出现延迟?

因为我需要将这个动画应用到很多很多按钮,大约 162 个按钮。

我正在使用 Galaxy Nexus 进行测试。

【问题讨论】:

  • 究竟为什么需要将它单独应用到 ~160 个按钮上?为什么不将其应用于容器视图?
  • 所以我需要选择所有按钮并包装在容器中?那么什么类型的容器呢?网格布局?线性布局?
  • 这取决于您 - 有这么多按钮,我假设您正在动态添加它们?
  • 我猜 GridLayout 是最适合您的解决方案。
  • 感谢现在工作顺利

标签: android animation fadeout smooth


【解决方案1】:

没有必要为每个按钮单独应用动画;相反,将它们全部粘贴到另一个布局(即 GridLayout)中,然后将动画应用于该布局。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    相关资源
    最近更新 更多