2019独角兽企业重金招聘Python工程师标准>>>

Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来 应用的比较多的就是组合图片显示 下面我就详细讲一个例子

首先写一个类继承BaseAdapter

[java] view plaincopy

  1. public class ImageList extends BaseAdapter {

  2. public Bitmap[] image;

  3. Activity activity;

  4. // construct

  5. public ImageList(Activity a) {

  6. activity = a;

  7. }

  8. @Override

  9. public int getCount() {

  10. // TODO Auto-generated method stub

  11. return image.length;

  12. }

  13. @Override

  14. public Object getItem(int position) {

  15. // TODO Auto-generated method stub

  16. return image[position];

  17. }

  18. @Override

  19. public long getItemId(int position) {

  20. // TODO Auto-generated method stub

  21. return position;

  22. }

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

  24. // TODO Auto-generated method stub

  25. ImageView imageView;

  26. if (convertView == null) {

  27. imageView = new ImageView(activity);

  28. imageView.setLayoutParams(new GridView.LayoutParams(50, 50));// 设置ImageView宽高

  29. imageView.setAdjustViewBounds(false);

  30. imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

  31. } else {

  32. imageView = (ImageView) convertView;

  33. }

  34. imageView.setImageBitmap(image[position]);

  35. return imageView;

  36. }

  37. public static Bitmap drawableToBitmap(Drawable drawable) {

  38. Bitmap bitmap = Bitmap

  39. .createBitmap(

  40. drawable.getIntrinsicWidth(),

  41. drawable.getIntrinsicHeight(),

  42. drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888

  43. : Bitmap.Config.RGB_565);

  44. Canvas canvas = new Canvas(bitmap);

  45. drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

  46. drawable.draw(canvas);

  47. return bitmap;

  48. }

  49. }

然后在主程序里

[c-sharp] view plaincopy

  1. final GridView gv = (GridView) findViewById(R.id.grid);

  2. ImageList adapter = new ImageList(available.this);

  3. Resources res=getResources();

  4. Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.logo);

  5. adapter.image=new Bitmap[20];

  6. for(int i=0;i<=19;i++)

  7. {

  8. adapter.image[i]=bmp;

  9. }

  10. gv.setAdapter(adapter);

  11. gv.setOnItemClickListener(new OnItemClickListener() {

  12. @Override

  13. public void onItemClick(AdapterView<?> arg0, View arg1,

  14. int arg2, long arg3) {

  15. // TODO Auto-generated method stub

  16. Log.i("phb", arg2 + "");

  17. Log.i("phbsel",gv.isFocused()+"");

  18. Intent i=new Intent(available.this, com.mobile.links.shop.mycx.shopcart.class);

  19. startActivity(i);

  20. }

  21. });

  22. gv.setOnItemSelectedListener(new OnItemSelectedListener(){

  23. @Override

  24. public void onItemSelected(AdapterView<?> arg0, View arg1,

  25. int arg2, long arg3) {

  26. // TODO Auto-generated method stub

  27. Log.i("selected",arg2+"");

  28. tv.setText(arg2+":detail");

  29. }

  30. @Override

  31. public void onNothingSelected(AdapterView<?> arg0) {

  32. // TODO Auto-generated method stub

  33. }

  34. });

其中onClick函数是判断被点击

而onSelect函数是判断被选中 也就是获得焦点的imageview

这样我们就可以基于gridview来做一些应用了。

构建gridview的xml代码

[c-sharp] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <LinearLayout

  3. android:id="@+id/relativelayout"

  4. android:layout_width="fill_parent"

  5. android:layout_height="fill_parent"

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

  7. android:orientation="vertical"

  8. >

  9. <GridView android:id="@+id/availgrid"

  10. android:layout_width="fill_parent"

  11. android:layout_height="wrap_content"

  12. android:numColumns="4"

  13. android:verticalSpacing="30dp"

  14. android:layout_centerHorizontal = "true"

  15. />

  16. </LinearLayout>

转载于:https://my.oschina.net/1590538xiaokai/blog/338724

Android GridView的使用方法相关推荐

  1. android gridview 停止滚动

    http://blog.csdn.net/yaphetzhao/article/details/50544105 参考上面的博客,关键代码我就贴出来吧: public void stopGridVie ...

  2. android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)

    Android GridView 滑动条设置一直显示状态(推荐) 模拟GridView控件: android:id="@+id/picture_grid" android:layo ...

  3. android gridview画分割线

    dongyangzhang android gridview画分割线,如图: 1.先上图: 2.具体实现代码: public class LineGridView extends GridView { ...

  4. Android GridView实现横向滚动

    1:Activity布局,data_test.xml: <?xml version="1.0" encoding="utf-8"?> <Lin ...

  5. android源码下载方法 批量下载 基于windows os

    安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...

  6. android屏幕密度高度,Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)...

    我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现.下面就分享一下Android中常用的一些辅助方法: 获取屏幕高度: /** * 获得屏幕高度 * @para ...

  7. android studio 如何提示方法的用法

    方法/步骤1在 Eclipse中鼠标放上去就可以提示方法的用法,实际上Android Studio也可以设置的.如图 Preferences > Editor >Generan> S ...

  8. Android滑动冲突解决方法

    Android滑动冲突解决方法 滑动冲突 首先讲解一下什么是滑动冲突.当你需要在一个ScrollView中嵌套使用ListView或者RecyclerView的时候你会发现只有ScrollView能够 ...

  9. android TextView 的setTextSize方法的使用

    今天,简单讲讲android的TextView 的setTextSize方法的使用. 之前,我看代码时发现了这个函数,于是在网上查询了这个函数的用法,发现之前自己了解的不够全面,所以这里记录一下. 看 ...

最新文章

  1. jmh气象传真图网站_在冬奥滑雪场,他凭着气象信息,念好一本生意经
  2. 1.3 单一数字评估指标-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  3. 引:善用backtrace解决大问题
  4. Mysql数据库(一)——mysql数据库初体验
  5. ACM算法--二分法--模板
  6. C语言模拟实现标准库函数之strstr()
  7. 21.Merge Two Sorted Lists 、23. Merge k Sorted Lists
  8. CSS Scrollbar (滚动条)
  9. .net语言中使用MapWinGIS.ocx
  10. OA选型案例:建筑行业选型华天OA系统
  11. mysql正则mybatis中用法_SQL正则表达式及mybatis中使用正则表达式
  12. bullmind在线流程图软件,在线visio软件
  13. 使用ES6,Pt更好JavaScript。 II:深入学习课堂
  14. matlab一个m文件定义多个函数,matlab怎么在一个m文件中写多个函数?
  15. 前端性能优化建议,24条
  16. https://juejin.im/post/5ae081aaf265da0b767d263a
  17. php离线bt下载,transmission + nginx = 离线BT下载站
  18. 灯哥开源ODRIVE FOC驱动器使用记录
  19. 阿宇NVR手机APP如何解绑?
  20. MYSQL学习笔记06:列属性[NULL,default,comment],主键,自增长,唯一键,数据库设计规范[范式(1NF,2NF,3NF),逆规范化],表关系[1V1,1VN,NVN]

热门文章

  1. 获取map第一个的key和value_谁要是再敢用Map传参,我过去就是一JIO
  2. Spring Boot + Thymeleaf 创建web项目
  3. 剑指 offer 树的子结构
  4. C语言 | 编译与预处理指令(宏定义完整讲解:#define)
  5. 图解TCP数据报结构以及三次握手(非常详细)
  6. 操作系统服务:logging日志记录模块
  7. erlang精要(9)-erl(1)
  8. 【Python】4500字、10个案例分享几个Python可视化小技巧,助你绘制高质量图表
  9. 避免入坑:如何知道一个导师的人品?
  10. 【机器学习】太强了!这个建模神器可以玩一辈子