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。

布局代码如下:

 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>

  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" >

  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 }

三、校验。

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

时间: 2024-10-10 03:52:40

Android实例-手机安全卫士(一)-启动界面的相关文章

Android实例-手机安全卫士(三)-设计主页面UI

一.目标. 主界面UI如图所示: 方面是一个功能列表提示框(采用TextView),下面是功能列表(采用GridView). 二.代码实现. 1.在主界面布局文件(activity_home.xml)中增加组件.主界面布局文件(activity_home.xml)采用线性布局,上面一个TextView,根据UI设置相应属性:下面一个是GridView,通过android:numColumns属性设置该组件的列数,由于GridView还需要inflate单个布局文件,所以为其设置id. 主界面布局

Android实例-手机安全卫士(十八)-完成设置向导的4个UI和跳转事件

一.目标. 制作向导设置里面每一步的UI布局及点击事件控制. 1.使用自定义button背景.自定义组合控件.自定义文本样式等. 2.利用SharedPreferences对象,设置应用程序配置信息(向导设置完成后就不再进入)           二.代码实现. 1.在程序包下新建另外3个UI的类(分别为SetupWizard_ui_2.java.SetupWizard_ui_3.java.SetupWizard_ui_4.java),并在配置文件中注册Activity. 2.根据UI设计,在设

Android实例-手机安全卫士(十五)-由主界面进入手机防盗界面

一.目标 1.在主界面中通过“设置防盗密码”或者“输入防盗密码”后,对话框消失,并进入”手机防盗界面“. 2.进入是”手机防盗界面“时,根据有无完成”手机防盗设置向导“的情况进入不同的界面.若未完成,则进入向导界面,若已完成,则进入防盗界面.          二.代码实现. 1.在程序包(com.example.mobilesafe)下新建两个Activity(分别取名SecurityActivity和SetupWizard),并在配置文件(AndroidManifest.xml)中完成注册.

Android实例-手机安全卫士(六)-制作功能区(设置中心)UI界面

一.目标. 制作类似手机设置中的效果.如图 二.代码实现. 1.整体采用线性布局,最上面是一个TextView,下面一个采用相对布局,并设置该相对布局的与边缘的偏移量. 2.在相对布局中存在4个组件:2个TextView.1个CheckBox和1条直线. 3.直线的画法:采用<View.../>控件,设置高度为“0.1dip”(该值的大小决定线的粗细),背景颜色为黑色(背景颜色就是线的颜色),其他属性如宽度等跟其他空间一样正常设置. 代码如下: 1 <?xml version="

Android实例-手机安全卫士(二十一)-自定义Activity界面切换动画

一.目标. 实现两个Activity界面的动画切换效果. 二.代码实现. 1.在res文件夹下新建一个名为anim的文件夹. 2.在新建的anim文件夹中新建一个Android xml file文件(取名tran_out),根据动画要求选择根元素(本例为translate),用于实现Activity界面移出屏幕的动画效果. 3.在新建的xml文件中,根标签<translate>的属性中,当输入一个属性时会自动增加命名空间.属性android:fromXDelta表示从哪个X轴来,原点为屏幕左上

Android实例-手机安全卫士(五)-从主界面进入相应功能区(设置)

一.目标 点击主界面上的图片进入相应功能区. 二.代码实现. 1.在程序包(com.example.mobilesafe)下新建类(SettingActivity)继承Activity,用于实现“设置中心”的各项功能,同时在layout文件夹下新建一个布局文件用于设计新建类的UI. 2.在新建类(SettingActivity)代码中复写onCreate方法,通过setContentView(int layoutResID)方法连接xml布局文件和新建类(SettingActivity). 3.

【边做项目边学Android】手机安全卫士04_01:界面(Activity)之间的切换,Activity和任务栈

上一回说到,用户选择是否升级,若用户选择不升级,那么就要进入程序的主界面.下面要做的是从splash界面跳转到main界面. MainActivity创建 1.首先新建MainActivity: package com.liuhao.mobilesafe.ui; import com.liuhao.mobilesafe.R; import android.app.Activity; import android.os.Bundle; public class MainActivity exten

Android实例-手机安全卫士(三十一)-根据指令完成相应操作二(锁屏和数据清除)

一.目标 1.实现远程锁屏和数据销毁操作: 2.初步制作“一键锁屏”应用和优化. 二.代码实现 1.在Receiver包下新建一个类(取名LockScreenReceiver)继承DeviceAdminReceiver类(是BroadcastReceiver类的一个子类),并在清单配置文件配置receiver标签 (1)在receiver标签中,增加name.permission属性,name为新建类(LockScreenReceiver)的全路径名称,permission为必须的BIND_DE

Android实例-手机安全卫士(十)-自定义对话框

一.目标. 当点击“手机防盗”时弹出自定义的设置密码对话框.如果已经设置密码,则弹出自定义的输入密码对话框. 二.代码实现. 1.在layout文件夹下新建xml(取名setpwddialog.xml)文件用于设置自定义对话框的UI. 新建xml文件代码如下; 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.a