Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 第二次调用setVisibility无效_Java_Android_Visibility - Fatal编程技术网

Java 第二次调用setVisibility无效

Java 第二次调用setVisibility无效,java,android,visibility,Java,Android,Visibility,我正在写一个android游戏。一个线性布局将在游戏开始和结束后显示。用户可以点击LinearLayout开始游戏,LinearLayout会随着动画消失(setVisibility(View.GONE)) 游戏结束后,相同的LinearLayout将显示另一个动画。这次我在onAnimationStart方法中调用setVisibility(View.Visible)。但是,在游戏结束后,我既看不到动画也看不到线性布局 这是我的密码: public void removeCover (View

我正在写一个android游戏。一个
线性布局将在游戏开始和结束后显示。用户可以点击
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()中一样!我真傻!谢谢