GridView实践
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实践相关推荐
- GridView宫格视图实践
① 新建工程 ② 在res/drawable目录下添加名称为a.png---p.png的图片 ③ 修改main.xml布局,添加一个GridView.一个ImageView <?xml vers ...
- 巧用DevExpress GridView导入导出Excel
1.Excel数据导入到数据库中: 在页面放置1个按钮控件(Button1)和1个文件上传控件(FileUpload1)»更多DevExpress开发资源与帮助文档 protected void ...
- GridView显示图片
参考文章:http://www.cnblogs.com/jll/archive/2005/12/14/297153.html 以下内容出处忘了 = =! 在ASP.NET中经常需要使用GridView ...
- ASP.NET MVC实践系列6-Grid实现(上)
ASP.NET MVC中不推荐使用webform的控件了,也就是说当希望列表显示数据时不能使用GridView了,很多开源软件为ASP.NET MVC实现了列表的解决方案,这些具体的解决方案我们放到下 ...
- GridView控件RowDataBound事件中获取列字段值的几种途径
前台: <asp:TemplateField HeaderText="充值总额|账号余额"><ItemTemplate><asp:Label ID=& ...
- 自定义GridView 介绍
GridView 是Microsoft DataGrid(VS2003版本)的一个替代品,它继承了DataGrid的很多优点,同时也继承了它的很多缺点,我们在方便使用的同时,还是不免会产生一丝遗憾.早 ...
- GridView控件RowDataBound事件中获取列字段的几种途径
GridView是ASP.NET中功能强大的数据显示控件,它的RowDataBound事件为我们提供了方便的控制行.列数据的途径. 要获取当前行的某个数据列,我在实践中总结有如下几种方法: 1. Ce ...
- flutter 项目实践2
本片文章来自与我自己的有道云笔记 要看图片请点击链接 文档:Day 4_3 项目实践2.md 链接:http://note.youdao.com/noteshare?id=f28e3058fea4d2 ...
- 20189200余超 2018-2019-2 移动平台应用开发实践第七周作业
20189200余超 2018-2019-2 移动平台应用开发实践第七周作业 布局 在这一节中首先学习了java的页面布局,在此基础之上来进行了编程. 图片如下: 代码如下: *** 使用代码进行登录 ...
最新文章
- struts2学习 - action -3 动态方法调用 DMI
- Executor框架
- redis list操作_大厂面试高频Redis,记不住的多操作几次吧
- 你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
- synchronized的底层原理
- 如何在WhatsApp中将群聊静音
- linux字体如何删除不了,如何彻底替换Ubuntu下Chrome字体(清除楷体字)
- 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)
- GOOGLE HACKING 系列文章 【FreeXploiT整理收集】
- [ ERROR ] Can not init Myriad device: NC_ERROR
- ZJOI2019 线段树
- Android tinyplay与tinycap流程(十六)
- 我的世界Java版最诡异的种子_我的世界:MC出现诡异的种子,地域不停地重复
- git与gitlab使用教程
- 坚果手机 误进FastBoot Mode解决方案
- 周志明:终于薅住了这位 “社恐”作者的小辫子
- 教资之教育知识与能力 第一章第四节
- 日行一善的100种方式
- 植物大战僵尸:代码实现无限阳光
- 大数据学习之HDFS基础
热门文章
- Oracle第三课之PLSQL
- java myeclipse The type java.lang.CharSequence cannot be resolved. It is indirectly referen
- matlab怎么删除上一条命令_怎么恢复电脑上删除的图片?四大步搞定
- redis的redisvCommand的%b
- java web项目在tomcat中以调试模式运行
- TS基础1(类型定义、接口)-学习笔记
- scala中给集合创建懒加载view视图
- Scala入门到精通——第七节:类和对象(二)
- 字节跳动Deep Retrieval召回模型笔记
- 聊聊高并发(二十五)解析java.util.concurrent各个组件(七) 理解Semaphore