一、目标。

  1、启动时全屏显示,并获得当前应用版本号;

  2、美化字体:颜色和文字阴影;

  3、添加一个ProgressBar以增加用户体验。

效果如图

二、编写过程。

  1、布局。在布局文件中增加一个TextView和一个ProgressBar,并根据要求进行布置(本例采用RelativeLayout进行布置)。

    ①.在RelativeLayout中的android:background属性通过@id的方法找到drawable文件下的布局文件。

    ②.在TextView中通过android:shadowColor="RGB颜色"(设置阴影颜色)、android:shadowDx="int"(设置阴影X轴偏移量)、android:shadowDy="int"(设置阴影Y轴偏移量)、android:shadowRadius="int"(设置阴影半径)。设置字体颜色为白色,默认内容为“版本1.0”,位于RelativeLayout正中间。

    ③.在TextView下方放置一个ProgressBar。

布局代码如下:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:background="@drawable/launcher_bg"
 6     tools:context=".SplashActivity" >
 7
 8     <TextView
 9         android:id="@+id/tv_version"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:layout_centerInParent="true"
13         android:shadowColor="#00ffff"
14         android:shadowDx="1"
15         android:shadowDy="1"
16         android:shadowRadius="1"
17         android:text="版本1.0"
18         android:textColor="#ffffff"
19         android:textSize="22sp" />
20
21     <ProgressBar
22         android:layout_width="wrap_content"
23         android:layout_height="wrap_content"
24         android:layout_below="@id/tv_version"
25         android:layout_centerHorizontal="true" />
26
27 </RelativeLayout>

View Code

  2、启动样式。程序启动时全屏显示。

    在程序配置文件(AndroidManifest.xml)中,在application节点下的activity节点里面增加android:theme属性,其值=“@android:style/Theme.NoTitleBar.Fullscreen”。其中Theme.后还有很多样式可选择。

样式代码如下:

1 <activity
2             android:name="com.example.mobilesafe.SplashActivity"
3             android:label="@string/app_name"
4             android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

View Code

  3、代码实现版本号的显示。

    ①.在主代码中新建一个返回值类型是String的private方法,取名为getVersionNumber();

    ②.在getVersionNumber()方法中,通过getPackageManager()方法获得PackageManager类型的返回值,取名pm;

    ③.通过PackageManager类型对象(pm)的getPackageInfo(packageName, flags)方法获得PackageInfo类型的返回值,取名packageInfo。在getPackageInfo(packageName, flags)方法中的参数packageName是指想要获取包信息的包全名,如(com.google.apps.contacts),如果想获取本程序对应的包的全名,可用getPackageName()方法;flags是指int类型的标签,目前可用0代替。同时,该方法会产生异常,采用try{...}catch{...}模块捕获。

    ④.通过PackageInfo类型对象(packageInfo)的versionName方法可以获得String类型的返回值,该返回值就是packageName的版本号。其实就是程序配置文件(AndroidManifest.xml)中manifest节点下的android:versionName中的值。

    ⑤.最后通过TextView的setText(“text”)方法更改其中的文本内容。

实现代码如下:

 1 package com.example.mobilesafe;
 2
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.content.pm.PackageInfo;
 6 import android.content.pm.PackageManager;
 7 import android.content.pm.PackageManager.NameNotFoundException;
 8 import android.view.Menu;
 9 import android.widget.TextView;
10
11 public class SplashActivity extends Activity {
12     private TextView tv_version;
13
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_splash);
18         tv_version = (TextView) findViewById(R.id.tv_version);
19         tv_version.setText("版本"+getVersionNumber());
20     }
21
22     /*
23      * 得到应用程序版本号
24      */
25
26     private String getVersionNumber() {
27         //用于管理手机的APK
28         PackageManager pm = getPackageManager();
29         //得到指定APK的功能清单文件(即AndroidMainfest.xml)
30         try {
31             PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);
32             return packageInfo.versionName;
33         } catch (NameNotFoundException e) {
34             e.printStackTrace();
35             return "";
36         }
37     }
38 }

View Code

三、校验。

  通过更改程序配置文件(AndroidManifest.xml)中manifest节点下的android:versionName中的值可以改变启动时的版本号。

转载于:https://www.cnblogs.com/Red-Shark/p/4238738.html

Android实例-手机安全卫士(一)-启动界面相关推荐

  1. Android实例-手机安全卫士(十一)-自定义对话框点击事件处理

    一.目标 在弹出的自定义对话框中,当点击"确认"时,保存密码,关闭对话框:当点击"取消"时关闭对话框.同时,如果不输入密码或输入密码错误则弹出相应的提示. 二. ...

  2. Android实例-手机安全卫士(三十五)-来电号码显示归属地

    一.目标 1.显示来电号码的归属地: 2.可在"设置中心"设置"是否启用来电号码归属地显示" 二.代码实现 (以服务的形式监听来电状态) 1.在项目服务包中新增 ...

  3. Android实例-手机安全卫士(二十四)-绑定SIM卡

    一.目标. 使用TelephonyManager对象获取手机相关信息,用SharedPreferences对象保存配置信息. 二.代码实现. 1.为"绑定SIM卡"按钮添加id(取 ...

  4. Android实例-手机安全卫士(四十一)-选择自定义Toast背景

    一.目标 通过对话框选择并保存自定义的Toast背景        二.代码实现 1.复制layout文件夹中的model_setting_item.xml文件,以其为模板进行修改(取名为model_ ...

  5. Android实例-手机安全卫士(三十六)-根据Service是否开启确定CheckBox选中状态

    一.目标 1.根据service是否在后台运行情况来确定CheckBox的选中状态: 2.解决"设置中心"的"开启来电号码显示归属地"功能在退出程序再进入时选中 ...

  6. 基于Android的手机安全卫士的开发

    基于Android的手机安全卫士的开发 开发环境 处理器:Intel® Core™ i5-5200U CPU 2.20GHz 内存:4GB 硬盘:500GB 操作系统:Windows 7中文版,64位 ...

  7. 基于android平台的手机安全卫士的设计与实现 开题报告,开题报告-基于android的手机安全卫士的设计与开发.doc...

    毕业设计开题报告 题 目: 基于Android的手机安全卫士的设计与开发 专 业 计算机科学与技术 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 电气信息工程学院 专 业 负 责 人 ...

  8. android 仿微信demo————微信启动界面实现

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

  9. 【边做项目边学Android】手机安全卫士09-手机防盗界面设置向导1

    本次主要做手机防盗界面的设置向导功能界面的设计. 需求: 当用户进入手机防盗界面时,判断用户是否已经进行过设置向导: 如果用户已经设置过手机防盗,则不再提示用户进入手机向导 若还没有设置,则提示用户进 ...

最新文章

  1. js把文字中的空格替换为横线
  2. 网站长尾关键词优化有门道!
  3. Hibernate之对象关系映射
  4. mysql n 识别_mysql – 不能有“不识别”的N:M关系吗?
  5. 课程目标 线程 java 1615387415
  6. bzoj 1974: [Sdoi2010]代码拍卖会
  7. 离线安装 Android 4.0 SDK
  8. 03、C语言——顺序结构
  9. 对轻量级C++日志类[转]
  10. 《C++代码设计与重用》——2.7 转型
  11. __FILE__ 与 $_SERVER['SCRIPT_FILENAME']的区别
  12. 基于共享内存和多重哈希实现分布式缓存系统
  13. 严数据结构c语言及答案,严蔚敏《数据结构(c语言版)习题集》全答案
  14. 一款基于NFine.Framework升级的新框架
  15. 实对称矩阵的特征值求法_旋转之三 - 旋转矩阵
  16. ID3算法的Python实现
  17. jQuery 梁桐老师笔记 - 选择器
  18. 压力传感器的误差补偿
  19. 如何对Camunda进行历史数据清理
  20. Pytorch 深度学习实战教程(五):今天,你垃圾分类了吗?

热门文章

  1. Web前端开发精品课HTML CSS JavaScript基础教程JavaScript部分知识点总结
  2. (python数据分析)第03章 Python的数据结构、函数和文件
  3. 课程设计之医药管理系统
  4. 项目中隐性知识共享的实施步骤
  5. 微信公众号获取用户头像昵称,用户信息
  6. 2020年机修钳工(中级)考试内容及机修钳工(中级)模拟试题
  7. (uniapp)h5图片加水印
  8. APM-SkyWalking介绍
  9. Linux Get!
  10. 运算放大器和比较器的区别