你的位置:首页 > 操作系统

[操作系统]Android 项目实战


从今天开始根据之前学习的android的基础知识,实战一下,实现一个简单功能的android手机卫士

本文地址:http://www.cnblogs.com/wuyudong/p/5899283.html,转载请注明源地址。

手机卫士的主要功能如下:

手机页面的splash页面初步如下:

splash布局

相应的代码在布局文件activity_splash.

<RelativeLayout ="http://schemas.android.com/apk/res/android"  ="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="@drawable/launcher_bg"  tools:context=".SplashActivity" >  <TextView    android:id="@+id/tv_version_name"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_centerInParent="true"    android:shadowColor="#f00"    android:shadowDx="1"    android:shadowDy="1"    android:shadowRadius="1"    android:text="版本名"    android:textColor="#fff"    android:textSize="16sp" />  <ProgressBar    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_centerHorizontal="true"    android:layout_below="@+id/tv_version_name" /></RelativeLayout>

activity去头操作&保留高版本主题

接下来去掉头部显示的标题:mobilesafe

方法1:在指定的activity中添加下面的代码:

public class SplashActivity extends Activity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //去掉当前actinity的tittle    requestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.activity_splash);      }  }

但是每一个activity都需要去配置,比较麻烦

方法2:将清单文件中的 android:theme="@style/AppTheme"修改为:android:theme="@android:style/Theme.Light.NoTitleBar

可以达到效果,但是主题的其他样式也发生了变化,为了兼容这两方面,修改styles.

  <!-- Application theme. -->  <style name="AppTheme" parent="AppBaseTheme">        <!-- 在去头的同时还保持高版本的样式主题 -->    <!-- All customizations that are NOT specific to a particular API-level can go here. -->     <item name="android:windowNoTitle">true</item>  </style>

搞定

获取版本名称并且展示

public class SplashActivity extends Activity {  private TextView tv_version_name;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    // 去掉当前actinity的tittle    // requestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.activity_splash);    // 初始化UI    initUI();    // 初始化数据    initData();  }  /**   * 获取数据方法   */  private void initData() {    // 应用版本名称    tv_version_name.setText("版本名:" + getVersionName());  }  /**   * 获取版本名称:清单文件中   *   * @return 应用版本名称 返回null代表有异常   */  private String getVersionName() {    // 1.管理者对象packageManager    PackageManager pm = getPackageManager();    // 2.从包的管理者对象中,获取指定包名的基本信息(版本名称,版本号)    try {      PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);      // 3.获取版本名称      return packageInfo.versionName;    } catch (Exception e) {      e.printStackTrace();    }    return null;  }  /**   * 初始化UI方法 alt+shift+j   */  private void initUI() {    tv_version_name = (TextView) findViewById(R.id.tv_version_name);  }}

完成后,运行项目