• Android项目实战欢迎界面


    欢迎界面
    首先同理把欢迎界面的图片导入到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>
    
  • 相关阅读:
    关于网购心态
    c++ In STL maps, is it better to use map::insert than []? Stack Overflow
    小工具:sshcopyid_老王的技术手册 ( 我的新博客:http://huoding.com )_百度空间
    djangoqbe
    C++ STL map的使用
    容器find_if函数定义和其第三个参数重载的疑问
    ArchLinux的安装与配置
    使用Grub进行Linux的硬盘安装与修复
    MySQL数据类型简介
    ArchLinux下Alsa的简单配置
  • 原文地址:https://www.cnblogs.com/dashucoding/p/10330406.html
Copyright © 2020-2023  润新知