浏览 4564 次
锁定老帖子 主题:Splash界面简单实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-02-21
Splash界面简单实现 大家都知道,android的应用很多的开始都是有一个Splash界面, 如:
实现起来其实很简单 实现原理:
通过Timer和TimerTask,Handler的结合。Timer来计时,TimerTask来判断是不是已经满足设定时间,hanlder来具体启动新的Activity。
import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.MotionEvent; public class SplashActivity extends Activity { private long startTime; private boolean touched=false; private Timer timer ; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.splash); //开启 定时器 timer = new Timer(true); startTime = System.currentTimeMillis(); timer.schedule(task, 0, 1); } private final TimerTask task = new TimerTask() { public void run() { if (task.scheduledExecutionTime() - startTime == 2000 || touched) { Message message = new Message(); message.what = 0; timerHandler.sendMessage(message); timer.cancel(); this.cancel(); } } }; private final Handler timerHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 0: SplashActivity.this.finish(); // 跳转到新的 activity Intent intent = new Intent(SplashActivity.this,TabMain.class); SplashActivity.this.startActivity(intent); break; } super.handleMessage(msg); } }; /** * 点击直接跳转 */ public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { touched = true; } return true; } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-02-24
初级贴,支持,希望楼主多发有含量的帖子。
|
|
返回顶楼 | |
发表时间:2012-02-25
Handler timerHandler = new Handler
sendMessage可以设置时间的.不推荐使用Timer |
|
返回顶楼 | |
发表时间:2012-02-25
Hanlder 可以使用 sendEmptyMessageDelayed 延时发送消息即可
|
|
返回顶楼 | |