gpt4 book ai didi

android - 简单的补间动画示例

转载 作者:IT老高 更新时间:2023-10-28 23:13:05 25 4
gpt4 key购买 nike

我正在尝试实现 http://developer.android.com/guide/topics/resources/animation-resource.html 中描述的“超空间”补间动画。 (“动画资源”) - 但是它似乎不像写的那样工作。当我运行应用程序时,我只会在应用程序标题栏下方看到一个空白 View 。我究竟做错了什么?

根据示例,这是我的代码。我创建了 res/anim/hyperspace_jump.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
<set
android:interpolator="@android:anim/accelerate_interpolator"
android:startOffset="700">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
</set>
</set>

我还创建了一个 layout/main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>

</LinearLayout>

我终于有一个 Activity 了:

package com.tomoreilly.geology;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView image = (ImageView) findViewById(R.id.ImageView01);
Animation hyperspaceJump =
AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
}
}

但我在运行应用程序时没有看到任何动画。我是否遗漏了“动画资源”示例中未涵盖的一些细节?

谢谢,汤姆

最佳答案

enter image description here

要添加不同的答案,您还可以尝试 Universal Tween Engine为您的 android UI 设置动画。实际上,您的动画需要很多行的 XML 格式,可以这样描述:

Timeline.createSequence()
// First, set your pivot (Tween.set() works instantly)
.push(Tween.set(image, ViewAccessor.PIVOT_XY).target(0.5f, 0.5f))

// Then, animate your scale and rotation as you want
.push(Tween.to(image, ViewAccessor.SCALE_XY, 0.7f).target(1.4f, 0.6f))
.beginParallel()
.push(Tween.to(image, ViewAccessor.SCALE_XY, 0.4f).target(0, 0))
.push(Tween.to(image, ViewAccessor.ROTATION, 0.4f).target(-45))
.end()

// Finally, start the animation!
.start();

当您有大量 Action 要排序时,它可能更具可读性。该引擎针对 Android 进行了高度优化,尤其是针对游戏进行了优化,并且不分配任何内容以提供最佳性能。

它是完全开源的,有大量文档,并使用 Apache-2 许可证发布。

你可以给 Android demo如果你想试试看:)

关于android - 简单的补间动画示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com