我们经常会看到,打开一款软件时,首先会显示它的标志,然后再进入页面,这就是Splash。
原理
把启动时的画面放在一个Activtiy里,并全屏显示,延迟一定时间,自动跳转到另一个Activity里。也就是从一个页面延时跳转到另一个页面。
图片Splash
我们用线程来实现,我们在这里需要创建两个Activity,我们让第一个Activity作为我们现实图片的Activity。当我们点击应用图标的时候,跳转到图片界面,经过我们设定的时间后,继续跳转到第二个Activity,第二个Activity我设置为没有任东西。具体的代码如下:
package com.example.tusplash;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//导入一个定时类
new Timer().schedule
( //创建一个线程
new TimerTask()
{
@Override
public void run()
{ //设置跳转的Activity
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
//开始跳转
startActivity(intent);
//结束当前Activity
finish();
}
},
//经过1200毫秒后跳转
1200
);
}
动画Splash
动画的splash的具体代码如下:
package com.example.dongsplash;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//引用一个缩放效果类
ScaleAnimation d=new ScaleAnimation(1f, 0f,1f,1f,Animation.RELATIVE_TO_PARENT,1f,Animation.RELATIVE_TO_PARENT,1f);
d.setDuration(1200);//设置动画的多少毫秒后跳转
//找到图片的ID 并声明变量
final ImageView k=(ImageView) findViewById(R.id.imageView1);
k.setAnimation(d);//把动画效果设置到这张图片里
//设置一个方法
d.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
//当图片到最右边的时候自动结束
k.setVisibility(View.GONE);
//实现跳转页面
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
startActivity(intent);
finish();
}
});
}
如有错误请多多指正,谢谢阅读。