《Android项目实战-博学谷》应用图标&欢迎界面
前言
本项目使用Android Studio 3.0.1作为开发工具,参照传智播客教材《Android项目实战——博学谷》
创建项目
可参照落萚简书文集——Android安全卫士开发笔记,里面详细讲述过项目的创建以及上传Github,在此不再赘述
应用图标
自适应图标为 Android O 新增的一种全新应用图标样式,具体可以参照
Google 设计师兼开发者 Nick Butcher 的以下三篇文章:
Understanding Android Adaptive Icons
Designing Adaptive Icons
Implementing Adaptive Icons
英文不好的朋友可以直接看国内译者 HarveyJanson 的文章:
Android O 自适应图标的意义何在?Google 设计师给你答案 | 科普
设计自适应图标
实现自适应图标
但最好还是多看官方文档,而且看英文版的,因为新的内容经常还未被汉化,于是会出现同一网址不同语言显示的完全不是同个东西的窘境
本人参照了 Adaptive Icons ,Create App Icons with Image Asset Studio。
首先把设计好的前景图和背景图放置在项目中,本人将这两张图片放置在了 drawable 目录下,然后在 res 目录 右键-> New -> Image Asset
然后在 Icon Type中选择 Launcher Icons (Adaptive and Legacy),在下方的 Foreground Layer 选项卡中的 Asset Type 选中 Image ,在 Path 选择项目中的图片路径,同理设置背景图片,为了兼容低版本的系统,Image Asset Studio 还会生成适用于低版本的图片,然后根据各自需求调整缩放等参数即完成应用图标的设置。
欢迎界面
首先同理把欢迎界面的图片导入到drawable目录下,在导入时 Android Studio 会提示如下
具体本人尚未弄明白,待理解后会重新补全本部分内容,在此本人选了第一个
然后创建一个包名为activity的包,在activity下创建SplashActivity
此时会发现 R 报红,只需要将光标锁定到R之后即会提示需要导入R包,如未提示,则手动敲击 Alt+Enter 选中 import class 即可导入
再而处理代码部分
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>
运行效果
相关推荐
<div class="panel-body" style="height: 300px; width: 100%; overflow: auto;" data-platform-scroll="&q
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114-precom