使用动画错误
error in using animation
我正在为我的小游戏使用淡入淡出
假设有 10 个图像我要闪烁(=立即淡出和淡入)。
点击图片时,图片会闪烁。
但是当我依次点击 img a、b、c、d 时,
之前眨眼的又眨眼
很喜欢
按键|闪烁
一个.............一个
b ..................a&b
c............ a,b,c
d ...............a,b,c,d
但是当我按下带有术语的图像时(可能是一秒钟左右),这并没有发生
我该怎么办?我正在使用
这样的 xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="300"/>
</set>
帮助!
------已添加代码
private void col(int a) {
B[a].startAnimation(animFadeOut);
B[a].setBackgroundColor(col[arr[a]]);
if (arr[a] > 8)
B[a].setTextColor(0xffffffff);
if (arr[a] <= 8)
B[a].setTextColor(0xff000000);
B[a].startAnimation(animFadeIn);
}
这个 col() 方法是我唯一使用动画的地方
我仔细检查了这个方法没有被重复调用,
说 a,b,c 在调用 col(c) 时闪烁(在上面的例子中)
正如我在评论中所说:
"I think Jim is right. If you have an Animation object as member of your class, you could face this kind of issue. Set a specific Animation object for each ImageView."
既然您已经发布了代码,我可以看到您使用 animFadeOut
为所有视图设置了动画。
如果您在 col 方法中声明局部动画变量而不是使用 Class 变量,您的问题就可以解决。
与多个视图共享同一个动画对象可能会导致意外行为。
试试这个代码:
private void col(int a) {
B[a].startAnimation(AnimationUtils.loadAnimation(mContext, R.anim.my_animation));
B[a].setBackgroundColor(col[arr[a]]);
if (arr[a] > 8)
B[a].setTextColor(0xffffffff);
if (arr[a] <= 8)
B[a].setTextColor(0xff000000);
B[a].startAnimation(animFadeIn);
}
我正在为我的小游戏使用淡入淡出
假设有 10 个图像我要闪烁(=立即淡出和淡入)。
点击图片时,图片会闪烁。
但是当我依次点击 img a、b、c、d 时,
之前眨眼的又眨眼
很喜欢
按键|闪烁
一个.............一个
b ..................a&b
c............ a,b,c
d ...............a,b,c,d
但是当我按下带有术语的图像时(可能是一秒钟左右),这并没有发生
我该怎么办?我正在使用
这样的 xml<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="300"/>
</set>
帮助!
------已添加代码
private void col(int a) {
B[a].startAnimation(animFadeOut);
B[a].setBackgroundColor(col[arr[a]]);
if (arr[a] > 8)
B[a].setTextColor(0xffffffff);
if (arr[a] <= 8)
B[a].setTextColor(0xff000000);
B[a].startAnimation(animFadeIn);
}
这个 col() 方法是我唯一使用动画的地方
我仔细检查了这个方法没有被重复调用,
说 a,b,c 在调用 col(c) 时闪烁(在上面的例子中)
正如我在评论中所说: "I think Jim is right. If you have an Animation object as member of your class, you could face this kind of issue. Set a specific Animation object for each ImageView."
既然您已经发布了代码,我可以看到您使用 animFadeOut
为所有视图设置了动画。
如果您在 col 方法中声明局部动画变量而不是使用 Class 变量,您的问题就可以解决。
与多个视图共享同一个动画对象可能会导致意外行为。
试试这个代码:
private void col(int a) {
B[a].startAnimation(AnimationUtils.loadAnimation(mContext, R.anim.my_animation));
B[a].setBackgroundColor(col[arr[a]]);
if (arr[a] > 8)
B[a].setTextColor(0xffffffff);
if (arr[a] <= 8)
B[a].setTextColor(0xff000000);
B[a].startAnimation(animFadeIn);
}