仔仔手机安全卫士demo(三)

泪湿孤枕 提交于 2019-12-07 19:21:36

 

由于前两天忙于学校的实习,就断了两三天没有学习android,今天实习结束,又可以继续了。

下面我将给出进入主页面的entryHome函数的实现以及使用gridView布局功能界面

entryHome函数实现

/**
 * 进入主页面
 */
private void enterHome() {
    Intent intent = new Intent(this, HomeActivity.class);
    this.startActivity(intent);
    /*关闭当前页面*/
    finish();

}
主界面预览图

这里先给出主界面功能图标的实现过程,展示最新信息的跑马灯我将独立出一篇单独给出(使用自定义),希望对跟我一样刚入门android的同学有所帮助

提前给出一些GridView 的属性功能介绍

属性名称

描述

android:columnWidth

设置列的宽度。

android:gravity

设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。

android:horizontalSpacing

两列之间的间距。

android:numColumns

设置列数。

android:stretchMode

缩放模式。

android:verticalSpacing

两行之间的间距。

功能界面布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:theme="@style/AppTheme.NoActionBar">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="55dip"
        android:background="@android:color/holo_green_dark"
        android:gravity="center"
        android:text="功能列表"
        android:textColor="@android:color/black"
        android:textSize="22sp" />
//此处为实现跑马灯效果的消息展示,后面将独立讲解

    <com.zaizai.safty.ui.FocusedTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:focusableInTouchMode="true"
        android:singleLine="true"
        android:text="最新的仔仔手机安全卫士,快来下载啊,下载送好吃的。最新的仔仔手机安全卫士,快来下载啊,下载送好吃的。最新的仔仔手机安全卫士,快来下载啊,下载送好吃的。"
        android:textSize="18sp" />
 
//GridView展示的单个Itme将使用自定义的样式进行展示

    <GridView
        android:id="@+id/gv_list_home"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="3"
        android:verticalSpacing="10dip" />

</LinearLayout>
 
//GridView 中的Itme样式布局文件如下
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    android:gravity="center">

mipmap-hdpi/app.png
    <ImageView
        android:id="@+id/iv_item"
        android:layout_width="60dip"
        android:layout_height="60dip"
        android:src="@drawable/app"
       />

    <TextView
        android:id="@+id/tv_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="手机防盗"
        android:textSize="16sp" />
</LinearLayout>
 
即上面用一个ImageView展示功能的图标,这里的src只是为了阅览调试布局配置,实际运行将动态加载,下面为一个TextView展示功能名称
 
下面我将贴出整个功能界面的Activity然后在代码中使用注释进行分步讲解
 
package com.zaizai.safty;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * Created by zaizai on 2015/10/12.
 */
public class HomeActivity extends Activity {


    private GridView gv_list_home;
    private MyAdapter myAdapter;
 
//分别定义出9个功能的名称

    private static String[] names = {
            "手机防盗", "通讯卫士", "软件管理",
            "进程管理", "流量统计", "手机杀毒", "缓存清理", "高级工具", "设置中心"
    };
 
//由于我使用的是android studio 所以我将9个功能的图标的图片文件放入mipmap-mdp中
 
//仍然时定义一个数组,数组存储的是图片的引用整型变量,整型变量所引用的值才是图片的路径

    private static int[] ids = {R.mipmap.safe, R.mipmap.callmsgsafe, R.mipmap.app, R.mipmap.taskmanager
            , R.mipmap.netmanager, R.mipmap.trojan, R.mipmap.sysoptimize, R.mipmap.atools, R.mipmap.settings
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
      //加载布局文件
        this.setContentView(R.layout.activity_home);
 
     //得到GirdView
        gv_list_home = (GridView) this.findViewById(R.id.gv_list_home);
 
    //创建一个数据适配器,在后面定义
        myAdapter = new MyAdapter();
 
   //给GirdView 设置数据适配器
        gv_list_home.setAdapter(myAdapter);
        /*设置主页面功能图标的的点击事件*/
        gv_list_home.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position) {
                    //根据position即可知道点击了第几个功能图标
                }
            }
        });

    }

    private class MyAdapter extends BaseAdapter {

        @Override
        public int getCount() {

            return names.length;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
 
           //将GridView 的Itme项的布局文件加载到功能页面视图中

            View view = View.inflate(HomeActivity.this, R.layout.list_item_home, null);
 
          //得到显示功能图标的imageView
            ImageView iv_item = (ImageView) view.findViewById(R.id.iv_item);
 
         //得到显示功能名称的TextView
            TextView tv_item = (TextView) view.findViewById(R.id.tv_item);
 
          //position代表第几个功能项,从0开始,我们将对应的存储功能名称的数组赋值给它即可
            tv_item.setText(names[position]);
 
          //与上面相同
            iv_item.setImageResource(ids[position]);
            return view;
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }


    }

}
 
到这里即完成了功能界面图标展示功能
 
后面将给出跑马灯效果的消息展示横幅的实现过程
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!