在开发自己的app时,经常在进入主界面之前需要写一个简单的SplashActivity欢迎界面,大概持续3、4秒钟之后再跳转到主界面。以下是本人的一个例子,可以参考。当点击打开app时,有一个欢迎界面,持续3秒后跳转到主界面(HelloWorld)详细的注释在代码里。


        代码如下:

        AndroidManifest.java

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

SplashActivity.xml

package com.example.leidong.mobilesafe;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Window;import android.view.WindowManager;import android.view.animation.AlphaAnimation;import android.widget.RelativeLayout;import android.widget.TextView;import java.util.Timer;import java.util.TimerTask;/** * Created by leidong on 2016/10/5. */public class SplashActivity extends AppCompatActivity {    private TextView tv_splash_version;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //设置为无标题栏        requestWindowFeature(Window.FEATURE_NO_TITLE);        //设置为全屏模式        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,                WindowManager.LayoutParams.FLAG_FULLSCREEN);        setContentView(R.layout.activity_splash);        //获取组件        RelativeLayout r1_splash = (RelativeLayout)findViewById(R.id.r1_splash);        tv_splash_version = (TextView)findViewById(R.id.tv_splash_version);        tv_splash_version.setText("版本号:" + getVersion());                //背景透明度变化3秒内从0.3变到1.0        AlphaAnimation aa = new AlphaAnimation(0.3f, 1.0f);        aa.setDuration(3000);        r1_splash.startAnimation(aa);        //创建Timer对象        Timer timer = new Timer();        //创建TimerTask对象        TimerTask timerTask = new TimerTask() {            @Override            public void run() {                Intent intent = new Intent(SplashActivity.this, TestActivity.class);                startActivity(intent);                finish();            }        };        //使用timer.schedule()方法调用timerTask,定时3秒后执行run        timer.schedule(timerTask, 3000);    }    /**     * 获取当前软件版本号     * @return     */    private String getVersion(){        //得到系统的包管理器,已经得到了apk的面向对象包装        PackageManager pm = this.getPackageManager();        try{            //参数一:当前应用程序的包名;            //参数二:可选的附加信息,这里用不到,可以定义为0            PackageInfo info = pm.getPackageInfo(getPackageName(), 0);            return info.versionName;        }catch (Exception e){//包名未找到异常,理论上,该异常不可能发生            e.printStackTrace();            return "";        }    }}


TestActivity.java

package com.example.leidong.mobilesafe;import android.app.Activity;import android.os.Bundle;/** * Created by leidong on 2016/10/5. */public class TestActivity extends Activity {    public void onCreate(Bundle savedInstateState){        super.onCreate(savedInstateState);        setContentView(R.layout.hello);    }}

activity_splash.xml

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


hello.xml

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

运行效果:

1.欢迎界面


2.主界面


更多相关文章

  1. Android(安卓)Studio和eclipse之间的不同
  2. Windows环境中集成Android4.x和Exclipse开发环境
  3. Android中解析JSON(一)
  4. Android(安卓)Volley 框架的使用(一)
  5. Android快速实现二维码扫描--Zxing
  6. 关于如何检测Android的内存泄漏:
  7. android窗口管理剖析
  8. Android使用代码进行界面布局和改变图标、标题、名称、主界面
  9. 转发---Android(安卓)DRM

随机推荐

  1. 真正衡量一个人的不是钱和地位,而是爱人的
  2. 我们想做成什么样的人,就能做成什么样的人
  3. 我们相信美好的未来一定会来
  4. 虽然我们怕受到伤害,但我们都非常的爱别人
  5. 找工作不理想,可能是这些原因,致刚出校门的
  6. 不是朋友不够好,而是有些事只能我们自己去
  7. 3种应对忧虑和不确定感的方式
  8. C语言数组(下)
  9. 全部运算符实例-分支与循环-替代语法-文
  10. php运算符,循环分支,文件包含探究