Grid为网格视图,例如实现类似九宫格的效果,可以首选GridView,该组件中的每一个条目通过ListAdapter和该组件进行关联。

GridViewExample.java代码如下:

 1 package com.example.lenovo.a1106;
 2 import android.app.Activity;
 3 import android.content.Intent;
 4 import android.content.pm.ResolveInfo;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.BaseAdapter;
 9 import android.widget.GridView;
10 import android.widget.ImageView;
11
12
13
14 import java.util.List;
15
16
17 public class GridViewExample extends Activity {
18     private GridView myGridView;
19     private List<ResolveInfo> myAppIcon;     //声明变量,存放桌面应用程序图标
20
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.gridview);
25         myGridView = (GridView) findViewById(R.id.myGrid);
26         loadAppIcon(); //加载桌面图片
27         BaseAdapter adapter = new BaseAdapter() {
28             @Override
29             public int getCount() {    //项目个数
30                 return myAppIcon.size();
31             }
32
33             @Override
34             public Object getItem(int position) {  //获取指定位置的项目
35                 return myAppIcon.get(position);
36             }
37
38             @Override
39             public long getItemId(int position) {   //获取指定位置项目id
40                 return position;
41             }
42
43             //定义每一项显示的内容
44             @Override
45             public View getView(int position, View convertView, ViewGroup parent) {
46                 ImageView imageView;
47                 if (convertView == null) {
48                     imageView = new ImageView(GridViewExample.this);
49                     //创建Image对象
50
51                     imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
52                     //设置图片的填充方式,这里按比例拉伸图片
53                     imageView.setLayoutParams(new GridView.LayoutParams(50, 50));
54                     //设置ImageView的大小为50*50
55                 } else {
56
57                     imageView = (ImageView) convertView;
58                 }
59                 ResolveInfo info = myAppIcon.get(position);
60                 //获取myAppIcon中下标为position的ResolveInfo
61                 imageView.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
62                 return imageView;
63
64             }
65         };
66        myGridView.setAdapter(adapter);
67
68       //  myListView.setAdapter(adapter);
69     }
70
71     private void loadAppIcon() {
72
73         Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
74         //创建Intent
75         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
76         //添加桌面应用程序列表到Intent
77         myAppIcon = getPackageManager().queryIntentActivities(mainIntent, 0);
78     }
79 }

View Code

gridview.xml代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2
 3 <GridView
 4     xmlns:android="http://schemas.android.com/apk/res/android"
 5     android:id="@+id/myGrid"
 6     android:orientation="vertical"
 7     android:layout_width="match_parent"
 8     android:layout_height="match_parent"
 9     android:padding="10dp"
10     android:numColumns="auto_fit"
11     android:horizontalSpacing="10dp"
12     android:verticalSpacing="10dp"
13     android:stretchMode="columnWidth"
14     android:gravity="center" />

当时遇到了个错误

说是空对象,然而没有想到是没有加载布局文件!!!得长记性!!!

转载于:https://www.cnblogs.com/Lynn0814/p/4943897.html

GridView实践相关推荐

  1. GridView宫格视图实践

    ① 新建工程 ② 在res/drawable目录下添加名称为a.png---p.png的图片 ③ 修改main.xml布局,添加一个GridView.一个ImageView <?xml vers ...

  2. 巧用DevExpress GridView导入导出Excel

    1.Excel数据导入到数据库中: 在页面放置1个按钮控件(Button1)和1个文件上传控件(FileUpload1)»更多DevExpress开发资源与帮助文档    protected void ...

  3. GridView显示图片

    参考文章:http://www.cnblogs.com/jll/archive/2005/12/14/297153.html 以下内容出处忘了 = =! 在ASP.NET中经常需要使用GridView ...

  4. ASP.NET MVC实践系列6-Grid实现(上)

    ASP.NET MVC中不推荐使用webform的控件了,也就是说当希望列表显示数据时不能使用GridView了,很多开源软件为ASP.NET MVC实现了列表的解决方案,这些具体的解决方案我们放到下 ...

  5. GridView控件RowDataBound事件中获取列字段值的几种途径

    前台: <asp:TemplateField HeaderText="充值总额|账号余额"><ItemTemplate><asp:Label ID=& ...

  6. 自定义GridView 介绍

    GridView 是Microsoft DataGrid(VS2003版本)的一个替代品,它继承了DataGrid的很多优点,同时也继承了它的很多缺点,我们在方便使用的同时,还是不免会产生一丝遗憾.早 ...

  7. GridView控件RowDataBound事件中获取列字段的几种途径

    GridView是ASP.NET中功能强大的数据显示控件,它的RowDataBound事件为我们提供了方便的控制行.列数据的途径. 要获取当前行的某个数据列,我在实践中总结有如下几种方法: 1. Ce ...

  8. flutter 项目实践2

    本片文章来自与我自己的有道云笔记 要看图片请点击链接 文档:Day 4_3 项目实践2.md 链接:http://note.youdao.com/noteshare?id=f28e3058fea4d2 ...

  9. 20189200余超 2018-2019-2 移动平台应用开发实践第七周作业

    20189200余超 2018-2019-2 移动平台应用开发实践第七周作业 布局 在这一节中首先学习了java的页面布局,在此基础之上来进行了编程. 图片如下: 代码如下: *** 使用代码进行登录 ...

最新文章

  1. struts2学习 - action -3 动态方法调用 DMI
  2. Executor框架
  3. redis list操作_大厂面试高频Redis,记不住的多操作几次吧
  4. 你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
  5. synchronized的底层原理
  6. 如何在WhatsApp中将群聊静音
  7. linux字体如何删除不了,如何彻底替换Ubuntu下Chrome字体(清除楷体字)
  8. 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)
  9. GOOGLE HACKING 系列文章 【FreeXploiT整理收集】
  10. [ ERROR ] Can not init Myriad device: NC_ERROR
  11. ZJOI2019 线段树
  12. Android tinyplay与tinycap流程(十六)
  13. 我的世界Java版最诡异的种子_我的世界:MC出现诡异的种子,地域不停地重复
  14. git与gitlab使用教程
  15. 坚果手机 误进FastBoot Mode解决方案
  16. 周志明:终于薅住了这位 “社恐”作者的小辫子
  17. 教资之教育知识与能力 第一章第四节
  18. 日行一善的100种方式
  19. 植物大战僵尸:代码实现无限阳光
  20. 大数据学习之HDFS基础

热门文章

  1. Oracle第三课之PLSQL
  2. java myeclipse The type java.lang.CharSequence cannot be resolved. It is indirectly referen
  3. matlab怎么删除上一条命令_怎么恢复电脑上删除的图片?四大步搞定
  4. redis的redisvCommand的%b
  5. java web项目在tomcat中以调试模式运行
  6. TS基础1(类型定义、接口)-学习笔记
  7. scala中给集合创建懒加载view视图
  8. Scala入门到精通——第七节:类和对象(二)
  9. 字节跳动Deep Retrieval召回模型笔记
  10. 聊聊高并发(二十五)解析java.util.concurrent各个组件(七) 理解Semaphore