2014-02-06 87 views
1

我使用fade_in和fade_out动画avaible android.R.anim.fade_in(fade_out)。基本上我可以改变动画的持续时间,但无论是0.5秒还是2秒,动画仍然不流畅。有什么方法可以使淡入/淡出动画更流畅吗?非常感谢!更平滑的动画ImageSwitcher

代码:

imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher); 

    slide_in_left = AnimationUtils.loadAnimation(this, R.anim.fade); 
    slide_out_right = AnimationUtils.loadAnimation(this, R.anim.fade_out); 

    imageSwitcher.setInAnimation(slide_in_left); 
    imageSwitcher.setOutAnimation(slide_out_right); 

* XML fade_out:*

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

回答

3

有几件事情可以做,以提高动画。首先,启用硬件加速在你的Android Manfiest,通过添加应用程序属性:

android:hardwareAccelerated="true" 

下,尝试一些不同的*插值* S。你可能会发现@android:anim/linear更平滑。

最后,如果这不起作用,您可以始终以编程方式使用Property Animations(对于较早的API版本可以使用NineOldAndroids)。

+0

哇,它工作完美!我应该在动画之后设置hardwareAcceleration =“false”吗? – Matwosk

+1

@Matwosk您可以将设置保留在清单中。如果您愿意,可以通过编程方式禁用硬件加速,但在大多数情况下,可以继续使用硬件加速。 – Phil

+0

将此添加到我的清单后,我在一个活动中丢失了背景图像。任何想法为什么? – Msmit1993

0

对我而言,最有效的方式还是将我应用程序的背景图片的文件大小降至最低。