在android应用中,在进入主界面之前经常会有一段用于过渡的欢迎界面,下面介绍一种,代码如下:

WelcomeActivity:

package com.home.welcompage;import java.util.Random;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;import android.widget.LinearLayout;public class WelcomeActivity extends Activity {private ImageView welcomeImage;private Thread t1, t2;private Handler handler;private int rand = new Random().nextInt(4);;private Animation animation;private int pageNumber = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.welcome);welcomeImage = (ImageView) findViewById(R.id.welcome_iv);animation = AnimationUtils.loadAnimation(this, R.anim.scal_anim);LinearLayout layout = (LinearLayout) findViewById(R.id.welcome_layout);layout.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (pageNumber == 2) {t1.interrupt();t2.interrupt();turnPage();// 跳转界面}}});handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what == 0) {switch (rand) {case 0:// 设置动画背景startAnimation(R.drawable.back1);break;case 1:startAnimation(R.drawable.back2);break;case 2:startAnimation(R.drawable.back3);break;case 3:startAnimation(R.drawable.back4);break;default:break;}}}};t1 = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(3000);handler.sendEmptyMessage(0);} catch (InterruptedException e) {e.printStackTrace();}}});t1.start();t2 = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(4000);turnPage();// 跳转界面} catch (InterruptedException e) {e.printStackTrace();}}});}/** * 跳转到主界面 */private void turnPage() {Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);WelcomeActivity.this.startActivity(intent);WelcomeActivity.this.finish();}/** * 设置动画背景 *  * @param imageSource */private void startAnimation(int imageSource) {welcomeImage.setBackgroundDrawable(getResources().getDrawable(imageSource));welcomeImage.setAnimation(animation);welcomeImage.startAnimation(animation);t2.start();pageNumber = 2;}}
welcome.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:id="@+id/welcome_layout">    <ImageView        android:id="@+id/welcome_iv"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="@drawable/logo"/></LinearLayout>

主界面省略。

动画:scal_anim.xml:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <scale        android:duration="6000"        android:fromXScale="1.0"        android:fromYScale="1.0"        android:pivotX="50%"        android:pivotY="50%"        android:toXScale="1.2"        android:toYScale="1.2" /></set>




更多相关文章

  1. Android实现随屏幕旋转的TextView
  2. 背景图片显示问题 图片显示错误 android开发
  3. Android中的popWindow
  4. button imageButton 背景透明
  5. 输入发与界面的调整
  6. android动态界面布局
  7. Android自实现activity之间切换,view随手指移动
  8. Android实现View隐藏显示渐变动画
  9. android调用系统发送短信 和 已发送短信界面

随机推荐

  1. ||运算你真的了解吗?
  2. 用 Python 自动定时发微博
  3. 还在一行一行的写html,感受痛苦吧
  4. springboot|springboot集成redis缓存
  5. <Oracle优化新常态> 第十一章 WHO-IT的等
  6. 2021年激活码激活PhpStorm全教程
  7. 我的第34个代码
  8. 初次撩MYCAT小姐姐
  9. 字符型验证码识别
  10. 前端开发使用工具 gulp