gpt4 book ai didi

android - 将连续动画应用于 Android 中的 ImageView

转载 作者:搜寻专家 更新时间:2023-11-01 08:17:20 24 4
gpt4 key购买 nike

我想将连续动画(比如 ScaleAnimation)应用于显示资源图像的 ImageView。动画由按钮触发。例如,我想在每次单击按钮时逐渐放大图像。

我在动画上设置了 fillAfter="true"。但是,所有动画都是从 ImageView 的原始状态开始的。似乎 ImageView 重置了它的状态并且动画总是相同的,而不是从前一个动画的最终状态开始。

我做错了什么?

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button button = (Button)findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
animate();

}});
}

private void animate() {
ImageView imageView = (ImageView) findViewById(R.id.ImageView01);

ScaleAnimation scale = new ScaleAnimation((float)1.0, (float)1.5, (float)1.0, (float)1.5);
scale.setFillAfter(true);
scale.setDuration(500);
imageView.startAnimation(scale);
}

最佳答案

It seems as if the ImageView resets its state and the animation is always the same, instead of starting from the final state of the previous animation.

没错!我确定 fillAfter="true" 有用,但我还没有弄清楚它的意义。

你需要做的是在每个相关的 Animation 上设置一个 AnimationListener,并在监听器的 onAnimationEnd() 中做一些事情来实际上坚持你的动画的结束状态。我还没有玩过 ScaleAnimation,所以我不太确定“保持最终状态”的方法是什么。如果这是一个 AlphaAnimation,从 1.00.0,您可以将小部件设为 INVISIBLE例如,onAnimationEnd() 中的 GONE

关于android - 将连续动画应用于 Android 中的 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563941/

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