Android实例-手机安全卫士(一)-启动界面
一、目标。
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。
布局代码如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
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.后还有很多样式可选择。
样式代码如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
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”)方法更改其中的文本内容。
实现代码如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
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实例-手机安全卫士(一)-启动界面相关推荐
- Android实例-手机安全卫士(十一)-自定义对话框点击事件处理
一.目标 在弹出的自定义对话框中,当点击"确认"时,保存密码,关闭对话框:当点击"取消"时关闭对话框.同时,如果不输入密码或输入密码错误则弹出相应的提示. 二. ...
- Android实例-手机安全卫士(三十五)-来电号码显示归属地
一.目标 1.显示来电号码的归属地: 2.可在"设置中心"设置"是否启用来电号码归属地显示" 二.代码实现 (以服务的形式监听来电状态) 1.在项目服务包中新增 ...
- Android实例-手机安全卫士(二十四)-绑定SIM卡
一.目标. 使用TelephonyManager对象获取手机相关信息,用SharedPreferences对象保存配置信息. 二.代码实现. 1.为"绑定SIM卡"按钮添加id(取 ...
- Android实例-手机安全卫士(四十一)-选择自定义Toast背景
一.目标 通过对话框选择并保存自定义的Toast背景 二.代码实现 1.复制layout文件夹中的model_setting_item.xml文件,以其为模板进行修改(取名为model_ ...
- Android实例-手机安全卫士(三十六)-根据Service是否开启确定CheckBox选中状态
一.目标 1.根据service是否在后台运行情况来确定CheckBox的选中状态: 2.解决"设置中心"的"开启来电号码显示归属地"功能在退出程序再进入时选中 ...
- 基于Android的手机安全卫士的开发
基于Android的手机安全卫士的开发 开发环境 处理器:Intel® Core™ i5-5200U CPU 2.20GHz 内存:4GB 硬盘:500GB 操作系统:Windows 7中文版,64位 ...
- 基于android平台的手机安全卫士的设计与实现 开题报告,开题报告-基于android的手机安全卫士的设计与开发.doc...
毕业设计开题报告 题 目: 基于Android的手机安全卫士的设计与开发 专 业 计算机科学与技术 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 电气信息工程学院 专 业 负 责 人 ...
- android 仿微信demo————微信启动界面实现
android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...
- 【边做项目边学Android】手机安全卫士09-手机防盗界面设置向导1
本次主要做手机防盗界面的设置向导功能界面的设计. 需求: 当用户进入手机防盗界面时,判断用户是否已经进行过设置向导: 如果用户已经设置过手机防盗,则不再提示用户进入手机向导 若还没有设置,则提示用户进 ...
最新文章
- js把文字中的空格替换为横线
- 网站长尾关键词优化有门道!
- Hibernate之对象关系映射
- mysql n 识别_mysql – 不能有“不识别”的N:M关系吗?
- 课程目标 线程 java 1615387415
- bzoj 1974: [Sdoi2010]代码拍卖会
- 离线安装 Android 4.0 SDK
- 03、C语言——顺序结构
- 对轻量级C++日志类[转]
- 《C++代码设计与重用》——2.7 转型
- __FILE__ 与 $_SERVER['SCRIPT_FILENAME']的区别
- 基于共享内存和多重哈希实现分布式缓存系统
- 严数据结构c语言及答案,严蔚敏《数据结构(c语言版)习题集》全答案
- 一款基于NFine.Framework升级的新框架
- 实对称矩阵的特征值求法_旋转之三 - 旋转矩阵
- ID3算法的Python实现
- jQuery 梁桐老师笔记 - 选择器
- 压力传感器的误差补偿
- 如何对Camunda进行历史数据清理
- Pytorch 深度学习实战教程(五):今天,你垃圾分类了吗?