android中一种欢迎界面模式
16lz
2021-01-24
在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>
更多相关文章
- Android实现随屏幕旋转的TextView
- 背景图片显示问题 图片显示错误 android开发
- Android中的popWindow
- button imageButton 背景透明
- 输入发与界面的调整
- android动态界面布局
- Android自实现activity之间切换,view随手指移动
- Android实现View隐藏显示渐变动画
- android调用系统发送短信 和 已发送短信界面