Android 项目实战--手机卫士(实现splash)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 项目实战--手机卫士(实现splash)相关的知识,希望对你有一定的参考价值。

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

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

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

技术分享

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

技术分享

splash布局

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="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.xml,添加下面的代码:

    <!-- 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);
    }

}

完成后,运行项目

技术分享

以上是关于Android 项目实战--手机卫士(实现splash)的主要内容,如果未能解决你的问题,请参考以下文章

Android项目实战_手机安全卫士系统加速

Android项目实战--手机卫士35--清除程序缓存

Android项目实战--手机卫士--结束

Android项目实战--手机卫士34--流量管理

Android项目实战--手机卫士33--ExpandableListView的使用

Android 手机卫士--实现splash页面