Android - 使用 ViewAnimator 时动画缓慢,是否可以使用硬件加速?

发布于 2024-12-26 04:59:07 字数 1171 浏览 1 评论 0原文

我有以下代码,将视图添加到 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);

和以下 xmlslide_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>

lide_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,我可以使用任何硬件加速,还是应该改变整个概念的方法?

谢谢一包

I have the following code, that adds views to 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);

and the following xmls

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>

Now, all works fine, however the performance of the animation looks sluggish and slow comparing to the native animations on my phone (Samsung galaxy S).

I use API level 8, can I use any hardware acceleration, or should I change my approach for the whole concept?

Thanks a bundle

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神爱温柔 2025-01-02 04:59:07


我的清单文件中缺少该文件,一旦添加,动画就非常流畅。

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/>
was missing from my manifest file, once added the animation is super smooth.

壹場煙雨 2025-01-02 04:59:07

它只是一个 2D 动画,这意味着它就像 IE7 Web 浏览器中的 Javascript 一样。

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

Its a 2D animation only, this means it is as in Javascript in the IE7 Web Browser.

To get faster animations the only way is to do it with (OpenGL) RenderScript
to get HW Accel through 3D when using API's < v14 (ICS).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文