繁体   English   中英

淡出麻烦— Android动画

[英]Trouble with Fade Out — Android Animation

我正在做我的第一个Android项目,首先要制作一个简单的启动屏幕,该屏幕在显示主菜单之前会逐渐变黑。 到目前为止,它仍然有效。 问题出在图像淡出后,它会突然弹出一秒钟,然后显示主菜单。

这是SplashActivity.java的代码:

public class SplashActivity extends Activity
{   
LinearLayout mLinearLayout;

 @Override
 public void onCreate(Bundle savedInstanceState) 
 {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.splash);

     mLinearLayout = new LinearLayout(this);


     ImageView i = new ImageView(this);
     i.setImageResource(R.drawable.splash);
     mLinearLayout.addView(i);
     setContentView(mLinearLayout);

     Animation fade = AnimationUtils.loadAnimation(this, R.anim.fade_out);
     i.startAnimation(fade);

     fade.setAnimationListener(new AnimationListener() {
         public void onAnimationEnd(Animation animation) 
         {
             startActivity(new Intent(SplashActivity.this, MenuActivity.class));
             SplashActivity.this.finish(); 
         }

         public void onAnimationRepeat(Animation arg0) {            
         }

         public void onAnimationStart(Animation arg0) {
         }
     });
 }
}

这是splash.xml的代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
 xmlns:android = "http://schemas.android.com/apk/res/android"
 android:orientation = "vertical"
 android:layout_width = "match_parent"
 android:layout_height = "match_parent"
 android:background = "#000">   
</LinearLayout>

最后,这是淡出的xml:

<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
  <alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="500"
    android:startOffset="2500">
  </alpha>
</set>

有两个注意事项:现在,初始屏幕仅用于显示(这意味着我知道它目前没有任何实际用途)。 我可以粘贴AndroidManifest xml或您认为可能需要的其他任何内容。

任何和所有帮助表示赞赏。 谢谢!

动画结束,然后翻转回原来的状态。 Android动画令人困惑,但请想象一下您看到的是海市rage楼。 实际上,您要制作动画的视图没有任何变化。 一旦结束,它就会回到原来的状态。

例如,创建一个100dp x 100dp的按钮,并通过缩放或旋转来设置动画。 非常缓慢地。 在运行时,如果单击看起来空白的区域,该按钮仍会记录点击。 那是因为它仍然是“那里”,但是您看不到它。

您需要做的是在动画侦听器中设置图像的可见性:

public void onAnimationEnd(Animation animation) 
     {
         startActivity(new Intent(SplashActivity.this, MenuActivity.class));
         SplashActivity.this.finish(); 
         i.setVisibility(View.INVISIBLE);
     }

可能需要在onAnimationStart中执行此操作。 实验。

我前一段时间做了一个介绍。 可能有用:

https://docs.google.com/present/view?id=djqv5kb_187c62jvbf7

这会有所帮助。

 public void onAnimationEnd(Animation animation) 
         {
             i.setVisibility(View.INVISIBLE);
             startActivity(new Intent(SplashActivity.this, MenuActivity.class));
             SplashActivity.this.finish(); 
         }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM