Java 第二次调用setVisibility无效
我正在写一个android游戏。一个Java 第二次调用setVisibility无效,java,android,visibility,Java,Android,Visibility,我正在写一个android游戏。一个线性布局将在游戏开始和结束后显示。用户可以点击LinearLayout开始游戏,LinearLayout会随着动画消失(setVisibility(View.GONE)) 游戏结束后,相同的LinearLayout将显示另一个动画。这次我在onAnimationStart方法中调用setVisibility(View.Visible)。但是,在游戏结束后,我既看不到动画也看不到线性布局 这是我的密码: public void removeCover (View
线性布局将在游戏开始和结束后显示。用户可以点击LinearLayout
开始游戏,LinearLayout
会随着动画消失(setVisibility(View.GONE)
)
游戏结束后,相同的LinearLayout
将显示另一个动画。这次我在onAnimationStart
方法中调用setVisibility(View.Visible)
。但是,在游戏结束后,我既看不到动画也看不到线性布局
这是我的密码:
public void removeCover (View view) {
Animation anim = AnimationUtils.loadAnimation (this, R.anim.cover_move_out);
anim.setAnimationListener (new Animation.AnimationListener () {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
GameActivity.this.cover.setVisibility (View.GONE);
Game.getInstance ().startGame ();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
cover.startAnimation (anim);
}
public void gameOver () {
tvScore.setText (Integer.toString (Game.getInstance ().getScore ()));
tvScoreText.setVisibility (View.VISIBLE);
tvScore.setVisibility (View.VISIBLE);
Animation anim = AnimationUtils.loadAnimation (this, R.anim.cover_fade_in);
anim.setAnimationListener (new Animation.AnimationListener () {
@Override
public void onAnimationStart(Animation animation) {
GameActivity.this.cover.setVisibility (View.VISIBLE);
}
@Override
public void onAnimationEnd(Animation animation) {
GameActivity.this.cover.setVisibility (View.VISIBLE);
Game.InitializeGame (GameActivity.this);
cover.setVisibility (View.VISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
封面\u移出动画:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:fromXDelta="0%"
android:toXDelta="0%"
android:duration="1000"/>
<scale
android:fromXScale="100%"
android:fromYScale="100%"
android:toXScale="0%"
android:toYScale="0%"
android:duration="1000"/>
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000"/>
</set>
动画中的覆盖淡入淡出:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:fromXDelta="0%"
android:toXDelta="0%"
android:duration="1000"/>
<scale
android:fromXScale="100%"
android:fromYScale="100%"
android:toXScale="0%"
android:toYScale="0%"
android:duration="1000"/>
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000"/>
</set>
说明:
当用户点击LinearLayout
时,将调用removeCover
<游戏结束时将调用code>gameOver
。我尝试将setVisibility(View.Visible)
放在不同的位置:在gameOver
方法中,在onAnimationEnds
和onanimationstart
方法中。在动画开始之前,我还尝试将可见性设置为不可见。但这些都不起作用。我想这可能是因为setVisibility(View.GONE)
只能调用一次。在那之后,视图真的“消失了”。你也需要在gameOver()中调用cover.startAnimation(anim),就像在removeCover()中一样哦,天哪!我真傻!谢谢你也需要在gameOver()中调用cover.startAnimation(anim),就像在removeCover()中一样!我真傻!谢谢