欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android项目实战欢迎界面

程序员文章站 2022-07-09 14:57:25
欢迎界面 首先同理把欢迎界面的图片导入到drawable目录下,在导入时 Android Studio 会提示如下 drawable 具体本人尚未弄明白,待理解后会重新补全本部分内容,在此本人选了第一个 然后创建一个包名为activity的包,在activity下创建SplashActivity S ......

欢迎界面
首先同理把欢迎界面的图片导入到drawable目录下,在导入时 android studio 会提示如下

drawable

具体本人尚未弄明白,待理解后会重新补全本部分内容,在此本人选了第一个

然后创建一个包名为activity的包,在activity下创建splashactivity

splashactivity

此时会发现 r 报红,只需要将光标锁定到r之后即会提示需要导入r包,如未提示,则手动敲击 alt+enter 选中 import class 即可导入

r报红

再而处理代码部分

splashactivity
package cn.edu.lt.android.boxueguapp.activity;

import android.content.intent;
import android.content.pm.activityinfo;
import android.content.pm.packageinfo;
import android.content.pm.packagemanager;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.widget.textview;

import java.util.timer;
import java.util.timertask;

import cn.edu.lt.android.boxueguapp.mainactivity;
import cn.edu.lt.android.boxueguapp.r;

public class splashactivity extends appcompatactivity {

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_splash);
        //设置此界面为
        // 竖屏
        setrequestedorientation(activityinfo.screen_orientation_portrait);
        init();
    }

    private void init() {
        textview tv_version = (textview)findviewbyid(r.id.tv_version);
        try {
            packageinfo packageinfo = getpackagemanager().getpackageinfo(getpackagename(), 0);
            tv_version.settext("v" + packageinfo.versionname);
        } catch (packagemanager.namenotfoundexception e) {
            e.printstacktrace();
            tv_version.settext("v");
        }

        //利用timer让此界面延迟3秒后跳转,timer有一个线程,该线程不断执行task
        timer timer = new timer();
        //timertask实现runnable接口,timertask类表示在一个指定时间内执行的task
        timertask timertask = new timertask() {
            @override
            public void run() {//发送intent实现页面跳转,第一个参数为当前页面的context,第二个参数为要跳转的主页
                intent intent = new intent(splashactivity.this, mainactivity.class);
                startactivity(intent);
                splashactivity.this.finish();//跳转后关闭当前欢迎页面
            }
        };
        timer.schedule(timertask,3000);//调度执行timertask,第二个参数传入延迟时间(毫秒)

    }
}

创建 activity 时同时自动创建了一个布局文件,首先修改为 relativelayout 布局

具体代码如下:

activity_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width = "match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/launch_bg">
    <textview
        android:id="@+id/tv_version"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textcolor="@android:color/white"
        android:textsize="14sp"
        android:layout_centerinparent="true"/><!--显示版本号-->

</relativelayout>
最后在清单文件 androidmanifest.xml 中配置欢迎界面,将应用入口修改为欢迎界面,再去除 actionbar 效果

androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.edu.lt.android.boxueguapp">

<application
    android:allowbackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundicon="@mipmap/ic_launcher_round"
    android:supportsrtl="true"
    android:theme="@style/theme.appcompat.noactionbar">
    <!--原为android:theme="@style/apptheme"--><!--去除actionbar标题栏-->
    <activity android:name=".mainactivity">
    </activity>
    <activity android:name=".activity.splashactivity">
        <intent-filter>
            <action android:name="android.intent.action.main" />

            <category android:name="android.intent.category.launcher" />
        </intent-filter>
    </activity>
</application>

</manifest>