2012-01-10 69 views
0

我有下面的代码,这增加了看法ViewAnimatorAndroid - 使用ViewAnimator时动作缓慢,是否可以使用硬件加速?

View step1 = View.inflate(activity, R.layout.step_1, null); 
View step2 = View.inflate(activity, R.layout.step_2, null); 
viewAnimator.addView(step1); 
viewAnimator.addView(step2); 
viewAnimator.setInAnimation(activity, R.anim.slide_in); 
viewAnimator.setOutAnimation(activity, R.anim.slide_out); 

及以下个XML

slide_in:

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <translate 
      android:fromXDelta="100%" android:toXDelta="0%" 
      android:fromYDelta="0%" android:toYDelta="0%" 
      android:duration="700" /> 
</set> 

slide_out:

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <translate android:fromXDelta="0%" android:toXDelta="-100%" 
       android:fromYDelta="0%" android:toYDelta="0%" 
       android:duration="700"/> 
</set> 

现在,所有作品很好,但是动画的表现看起来呆滞与我手机上的原生动画(三星Galaxy S)相比较慢。

我使用API​​级别8,我可以使用任何硬件加速,还是应该改变我对整个概念的方法?

由于捆绑

回答

2

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/> 从我的清单文件中缺少,一旦添加动画是非常流畅的。

0

它是一个2D动画而已,这意味着它是在JavaScript中的IE7浏览器。

要获得更快的动画,唯一的方法是使用(OpenGL)RenderScript 通过使用API​​的< v14(ICS)获得HW Accel。

+0

硬件加速的确适用于从Honeycomb开始的2D动画。但是,它不支持所有的绘图机制。如果他的目标是API级别8,则根本无济于事。他可以将目标API设置为Honeycomb的第11级,启用硬件加速,并将最低API级别设置为8.只要他的代码使用2.2,只有具有硬件加速的设备才会使用它,而那些不支持的设备仍然可以使用该程序的性能可能稍微低迷。 – DeeV 2012-01-10 14:49:15

+0

有趣的...你能详细阐述一下吗? – 2012-01-10 15:19:31

+0

从我的清单文件中缺失,一旦添加动画非常流畅,感谢那个方向! – 2012-01-10 15:44:01