主界面的布局文件

<?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:background="@color/backgroundcolor"android:orientation="vertical" ><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="40dip"android:background="@drawable/title_background"android:gravity="center_horizontal|center_vertical"android:orientation="vertical" ><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#FFF8F8F8"android:textSize="22sp"android:text="山寨手机卫士"/></LinearLayout><GridViewandroid:id="@+id/gv_main"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="10dip"android:horizontalSpacing="10dip"android:numColumns="3"android:verticalSpacing="10dip" ></GridView></LinearLayout>

适配器

package cn.itcast.mobilesafe.adapter;import cn.itcast.mobilesafe.R;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;public class MainUIAdapter extends BaseAdapter {private static final String TAG = "MainUIAdapter";private Context context;private LayoutInflater inflater;private static ImageView iv_icon;private static TextView tv_name;private SharedPreferences sp;public MainUIAdapter(Context context) {this.context = context;inflater = LayoutInflater.from(context);sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);}private static String[] names = { "手机防盗", "通讯卫士", "软件管理", "任务管理", "流量管理","手机杀毒", "系统优化", "高级工具", "设置中心" };private static int[] icons = { R.drawable.widget05, R.drawable.widget02,R.drawable.widget01, R.drawable.widget07, R.drawable.widget05,R.drawable.widget04, R.drawable.widget06, R.drawable.widget03,R.drawable.widget08 };public int getCount() {return names.length;}public Object getItem(int position) {return position;}public long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public View getView(int position, View convertView, ViewGroup parent) {// getview的方法被调用了多少次?// 9// gridview 控件bug // won't fix // 使用静态的变量引用 减少内存中申请的引用的个数 Log.i(TAG,"getview "+ position);View view = inflater.inflate(R.layout.mainscreen_item, null);iv_icon =  (ImageView) view.findViewById(R.id.iv_main_icon);tv_name =  (TextView) view.findViewById(R.id.tv_main_name);iv_icon.setImageResource(icons[position]);tv_name.setText(names[position]);if(position==0){String name = sp.getString("lost_name", null);if(name!=null){tv_name.setText(name);}}return view;}}

mainscreen_item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="100dip"android:layout_height="100dip"android:gravity="center_horizontal"android:background="@drawable/item_background"android:orientation="vertical" ><ImageViewandroid:id="@+id/iv_main_icon"android:layout_width="60dip"android:layout_height="60dip"android:scaleType="fitXY"android:src="@drawable/ic_launcher" /><TextViewandroid:id="@+id/tv_main_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="功能名字"android:textColor="@color/textcolor"android:textSize="18sp" /></LinearLayout>

样式文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle" ><strokeandroid:width="0.5dip"android:color="#ff505050" /><corners android:radius="2dip" ></corners><gradient android:startColor="#ff404040"android:centerColor="#ff383838"android:endColor="#ff404040"/>
</shape>

效果

手机安全卫士开发系列(6)——程序主界面相关推荐

  1. 手机安全卫士开发系列(2)——splash界面

    一.Android中的MVC (1)activity主要用来页面的展示 (2)engine包:获取数据和展示数据(包含数据适配器) (3)domain包:存放数据实体 第一种包结构组织关系: 第二种包 ...

  2. 开发android项目实战,Android 项目实战:手机安全卫士开发案例解析

    Android 项目实战:手机安全卫士开发案例解析 作 者:王家林,王家俊,王家虎 出版时间:2013 丛编项:移动互联应用开发系列 内容简介 本书通过对一款手机安全卫士开发案例的详细解析,讲解了一个 ...

  3. IOS开发系列--IOS程序开发概览

    IOS开发系列--IOS程序开发概览 2014-08-04 19:42 by KenshinCui, 9983 阅读, 51 评论, 收藏, 编辑 概览 终于到了真正接触IOS应用程序的时刻了,之前我 ...

  4. iOS开发系列--IOS程序开发概览ios基础

    iOS开发系列--IOS程序开发概览 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的I ...

  5. 手机直播开发,直播程序源码,直播源码分享经验

    手机直播开发,直播程序源码,直播系统开发,直播源码 2016-2017年是网络直播元年,发展了酝酿了10来年的网络直播市场终于在这一年开始喷发,手机直播开发更成为炙手可热的市场新宠儿,而如何进行手机直 ...

  6. 基于Android的小巫新闻客户端开发--UI设计(主界面)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 基于An ...

  7. WinForm应用实战开发指南 - 如何设计展示应用程序主界面

    WinForm应用程序的开发,主窗口的界面设计一般都要求做的更好一些,可以根据不同的系统功能模块进行归类整合,能使客户迅速寻找到相关功能的同时,也能感觉到整体性的美观大方,因此主窗口的界面设计总是会精 ...

  8. 关于手机安全卫士开发详解

    手机安全卫士 1  初始化界面的搭建 1.1  界面UI 界面的ui主要完成的是背景图片的显示,以及版本号的显示,其中版本号是需要动态获取显示的. 主要实现:由于布局的特点选择相对布局,在Relati ...

  9. Android学习系列(22)--App主界面比较

    本文算是一篇漫谈,谈一谈当前几个流行应用的主界面布局,找个经典的布局我们自己也来实现一个. 不是为了追求到底有多难,而是为了明白我们确实需要这么做.  走个题,android的UI差异化市场依然很大, ...

最新文章

  1. ssm启动报错cannot find class_SSM整合补充 RBAC(权限控制)过滤器
  2. 检查列表中是否存在值的最快方法
  3. 【学习笔记】17、函数(Function)的定义和调用
  4. 【转】三分钟了解Fiori背后的设计理念
  5. LeetCode 121. 买卖股票的最佳时机(Best Time to Buy and Sell Stock)
  6. electron打包现成的vue项目成.exe文件,build打包vue项目(quasar 框架)
  7. 使用Spring Task完成定时任务
  8. JVM(三)对象的生死判定和算法详解
  9. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 中的标识列插入显式值错误的解决方法...
  10. 移动端点击延迟300ms传说 你听过吗
  11. 展示面--存储学习总结于2021年
  12. 基于MaterialDesign设计风格的妹纸app的简单实现
  13. 【洛谷p1164】小A点菜
  14. 修改RHEL6的root超级用户密码
  15. java安卓开发软件及环境配置
  16. Meltdown Attack
  17. PS学习之动态表情制作
  18. android 触摸屏干扰,一种电容触摸屏的抗干扰方法及其控制模块与流程
  19. mysql 投影运算_数据库查询 - 通俗易懂解释:选择、投影、并、差、笛卡尔积、连接 - 小黑电脑...
  20. Latex / Katex 编辑基础化学方程式 点这篇绝对有用

热门文章

  1. js复制功能,可粘贴到word,微信等其他地方(复制内容可换行)
  2. 「案例分享」研发效能提升之第一性原理
  3. SpringMVC06:Json交互处理
  4. gradle安装及创建Java gradle 工程
  5. 四维全息算法--一把动态的标准尺
  6. SEO站群网站关键词挖掘
  7. Java 抽象类最佳实践-模板设计模式
  8. 程序员全职应该如何接单?
  9. 程序猿的骄傲,以及骄傲背后真实的原因。
  10. 如何成为时间管理大师?