前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[android] 手机卫士欢迎细节和主界面

[android] 手机卫士欢迎细节和主界面

作者头像
唯一Chat
发布2019-09-10 12:08:49
4920
发布2019-09-10 12:08:49
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

splash界面的细节

ctrl + O 搜索

在去标题的时候,对话框主题被去掉了,有点丑,现在既要有新版本的对话框又不显示标题

把清单文件中activity节点的主题去掉

进入到application节点的样式设置文件里面,添加一句

<item name="android:windowNoTitle">true</item>

设置点返回和空白地方对话框不消失

调用AlertDialog.Builer对象的setCancelable(false),强制升级的时候

或者设置取消监听器

两种上下文的区别

当显示对话框的时候,如果使用getApplicationContext()来得到上下文,此时报错

BadTokenException

对话框是Activity的一部分

对话框是挂载在Activity上的,Activity是Context的子类

父亲类有的子类一定有

子类有的父类不一定有

XxxActivity.this生命周期短一点,和activity一致,用的多一点

getApplicationContext()生命周期长一点,和应用一致

应用程序的主界面

九宫格的布局,使用<GridView/>布局

GridView和ListView是两兄弟,设置三列 , android:numColumns=”3”

设置内部条目垂直的距离,android.verticalSpacing=”10dp”

获取GridView对象

调用GridView对象的setAdapter(adapter)对象,参数:Adapter对象

Adapter是接口,使用内部类继承BaseAdapter类来定义

定义文字数据,静态String[] names数组,{“手机防盗”,”通讯卫士”}

定义图片数据,静态 int[] icons数组,{R.drawable.xxx,xxxxxxx}

创建一个内部类MyAdapter继承BaseAdapter

重写getCount(),方法,return names的长度length属性

重写getView()方法,

定义一个布局文件,列表中的每一项,上面是图片,下面是文字

调用View.inflate(),参数:上下文,资源,null

调用View对象的findViewById()方法,找到内部的控件,设置文字和图片

调用ImageView对象的setImageResource(),参数:icons[position]

代码:

代码语言:javascript
复制
package com.qingguow.mobilesafe;

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

public class HomeActivity extends Activity {
    private GridView gv_home_list;
    private MyAdapter mAdapter;
    private static String[] names={
        "手机防盗","通讯卫士","软件管家",
        "进程管理","流量统计","手机杀毒",
        "缓存清理","高级工具","设置中心"
    };
    private static int[] icons={
        R.drawable.safe,R.drawable.callmsgsafe,R.drawable.app,
        R.drawable.taskmanager,R.drawable.netmanager,R.drawable.trojan,
        R.drawable.sysoptimize,R.drawable.atools,R.drawable.settings
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        gv_home_list=(GridView) findViewById(R.id.gv_home_list);
        mAdapter=new MyAdapter();
        gv_home_list.setAdapter(mAdapter);
    }
    private class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return names.length;
        }

        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {
            View view=View.inflate(HomeActivity.this, R.layout.list_home_item, null);
            TextView tv=(TextView) view.findViewById(R.id.tv_listhome_name);
            tv.setText(names[arg0]);
            ImageView iv=(ImageView) view.findViewById(R.id.iv_listhome_icon);
            iv.setImageResource(icons[arg0]);
            return view;
        }}
}

activity_home.xml

代码语言:javascript
复制
<?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" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="#ccc"
        android:gravity="center"
        android:text="功能列表"
        android:textSize="20sp" />

    <GridView
        android:layout_marginTop="10dp"
        android:verticalSpacing="10dp"
        android:id="@+id/gv_home_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3" />

</LinearLayout>

list_hone_item.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >
    <ImageView 
        android:id="@+id/iv_listhome_icon"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/safe"/>
    <TextView 
        android:id="@+id/tv_listhome_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="手机防盗"/>

</LinearLayout>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档