本文实例讲述了Android编程之九宫格实现方法。分享给大家供大家参考,具体如下:

显示九宫格需要用GridView , 要显示每个格子中的视图有两种方式,第一种方式是做成xml文件,再将xml文件做成视图。第二种方式就是在代码中构建出这样一种布局,这里采用第一种方式来实现:

GridView:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id="@+id/gv_all"

android:layout_height="fill_parent"

android:layout_width="fill_parent"

android:numColumns="3"

android:horizontalSpacing="10px"

android:verticalSpacing="10px"

android:layout_marginBottom="58px"

android:layout_marginTop="28px"

android:layout_marginLeft="5px"

android:layout_marginRight="5px"

>

视图:

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="90px"

android:layout_height="90px">

android:layout_width="64px"

android:layout_height="64px"

android:layout_gravity="center_horizontal"

android:id="@+id/main_gv_iv"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:textSize="16px"

android:textColor="#FFF"

android:id="@+id/main_gv_tv"

/>

初始化:

public class MainActivity extends Activity {

public static final String TAG = "MainActivity";

GridView maingv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.mainactivity);

//获取到GridView

maingv = (GridView) this.findViewById(R.id.gv_all);

//给gridview设置数据适配器

maingv.setAdapter(new MainGridViewAdapter(this));

//点击事件

maingv.setOnItemClickListener(new MainItemClickListener());

}

private class MainItemClickListener implements OnItemClickListener{

/**

* @param parent 代表当前的gridview

* @param view 代表点击的item

* @param position 当前点击的item在适配中的位置

* @param id 当前点击的item在哪一行

*/

public void onItemClick(AdapterView> parent, View view, int position,

long id) {

switch (position) {

case 0:

Intent intent = new Intent(MainActivity.this,LostProtectedActivity.class);

startActivity(intent);

break;

}

}

}

}

设置数据适配器 :

// 完成gridview 数据到界面的适配

public class MainGridViewAdapter extends BaseAdapter {

private static final String TAG = "MainGridViewAdapter";

private String[] names = {"手机防盗","通讯卫士","软件管理","任务管理","上网管理","手机杀毒","系统优化","高级工具","设置中心"};

private 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};

private Context context;

LayoutInflater infalter;

public MainGridViewAdapter(Context context) {

this.context = context;

//方法1 通过系统的service 获取到 试图填充器

//infalter = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

//方法2 通过layoutinflater的静态方法获取到 视图填充器

infalter = LayoutInflater.from(context);

}

// 返回gridview里面有多少个条目

public int getCount() {

return names.length;

}

//返回某个position对应的条目

public Object getItem(int position) {

return position;

}

//返回某个position对应的id

public long getItemId(int position) {

return position;

}

//返回某个位置对应的视图

public View getView(int position, View convertView, ViewGroup parent) {

Log.i(TAG,"GETVIEW "+ position);

//把一个布局文件转换成视图

View view = infalter.inflate(R.layout.mainactivity_item, null);

ImageView iv = (ImageView) view.findViewById(R.id.main_gv_iv);

TextView tv = (TextView) view.findViewById(R.id.main_gv_tv);

//设置每一个item的名字和图标

iv.setImageResource(icons[position]);

tv.setText(names[position]);

return view;

}

}

希望本文所述对大家Android程序设计有所帮助。

android编程九宫格,Android编程之九宫格实现方法实例分析相关推荐

  1. Android Studio中的RecyclerView的使用方法实例分析

    RecyclerView的使用方法实例分析 话不多说直接上代码 主文件的布局文件,定义一个RecyclerView列表 <?xml version="1.0" encodin ...

  2. android application 全局变量 空指针,Android编程之Application设置全局变量及传值用法实例分析...

    本文实例讲述了Android编程之Application设置全局变量及传值用法.分享给大家供大家参考,具体如下: /** * 重写Application,主要重写里面的onCreate方法,就是创建的 ...

  3. python协程编程实例_Python异步编程之协程任务的调度操作实例分析

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. Android Framework 电源子系统(05)核心方法updatePowerStateLocked分析-3 更新屏保  发送通知  更新wakelock

    该系列文章总纲链接:专题分纲目录 Android Framework 电源子系统 本章关键点总结 & 说明: 本章节主要关注➕ updatePowerStateLocked 方法中 更新屏保 ...

  5. Android Framework 电源子系统(04)核心方法updatePowerStateLocked分析-2 循环处理  更新显示设备状态

    该系列文章总纲链接:专题分纲目录 Android Framework 电源子系统 本章关键点总结 & 说明: 本章节主要关注➕ updatePowerStateLocked 方法中 循环处理 ...

  6. Android 8.1 Audio框架(二)AudioPolicy路由策略实例分析

    概述 这里以蓝牙耳机连接手机这一场景为例分析Audio路由策略是如何进行设备切换和管理输出的.蓝牙耳机连接上Android系统后,AudioService的handleDeviceConnection ...

  7. android studio table居中代码_五个方法实例代码详解教你在CSS中实现垂直居中

    点击上面"蓝字"关注我们 你是否和小编一样在编辑一个版面时,通常用到水平居中和垂直居中,而水平居中很好处理,不外乎就是设定margin:0 auto;或是text-align:ce ...

  8. CORBA组件编程方法实例+分析

    预警:本篇中有大量截图+代码/代码段 关于CORBA组件的应用老师上课时给我们讲了个例子:没登录qq时不能用qq截图,只有登录上了qq才能用.也就是启动了qq服务端之后才能在客户端使用服务端上的服务. ...

  9. android 网络编程实现,Android开发使用HttpURLConnection进行网络编程详解【附源码下载】...

    本文实例讲述了Android开发使用HttpURLConnection进行网络编程.分享给大家供大家参考,具体如下: --HttpURLConnection URLConnection已经可以非常方便 ...

最新文章

  1. python urllib.request 爬虫 数据处理-Python网络爬虫(基于urllib库的get请求页面)
  2. MSSQL WITH (NOLOCK) 脏读
  3. pycharm切换虚拟环境
  4. xtrabackup mysql 5.6_MySQL 5.6对于Xtrabackup的影响
  5. 在mac中使用git-flow
  6. 以太坊ERC20代币合约案例
  7. 解决ubuntu18.04中python兼容以及pip兼容问题
  8. javascript鼠标拖拽的那些事情
  9. 【英语学习】【Level 08】U02 Movie Time L3 Now showing
  10. tesseract 提升识别质量
  11. 利用Nginx 实现负载均衡代理(有图有真相)
  12. c 语言编程怎样弄循环语句,C 语言循环语句
  13. 推荐几个在线SQL编程的网站,良心!
  14. 利用企业微信机器人发送GitLab消息
  15. Windows系统管理24招
  16. python-函数参数和文档
  17. RTI DDS windows环境下的下载和安装
  18. 面试官,你到底安的什么心?
  19. 绿蓝色悖论(新归纳之谜)?
  20. adb删除软件_苹果免越狱如何安装ipa 苹果免越狱安装软件安装教程【详解】

热门文章

  1. JSR303参数校验(2)
  2. 跟读者唠唠嗑(文末有惊喜)
  3. wps office word Documents.Open()方法中的参数怎么写?
  4. 微软中国垂涎IBM大客户高薪挖走咨询师
  5. 7个好用的运维监控工具,你在用哪个?
  6. jenkins安装 插件插件失败 简单快捷安装办法
  7. Linux驱动-Netlink通信
  8. 为何智能爆炸可能成真?
  9. 牛客网面试高频题top100(1~10)
  10. arraylist 排序 java_Java对ArrayList进行排序