MainActivity.java

  1. public class MainActivity extends Activity
  2. {
  3. GridView grid;
  4. ImageView imageView;
  5. int[] imageIds = new int[]
  6. {
  7. R.drawable.bomb5 , R.drawable.bomb6 , R.drawable.bomb7
  8. , R.drawable.bomb8 , R.drawable.bomb9 , R.drawable.bomb10
  9. , R.drawable.bomb11 , R.drawable.bomb12 , R.drawable.bomb13
  10. , R.drawable.bomb14 , R.drawable.bomb15 , R.drawable.bomb16
  11. };
  12. @Override
  13. public void onCreate(Bundle savedInstanceState)
  14. {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. // 创建一个List对象,List对象的元素是Map
  18. List<Map<String, Object>> listItems =
  19. new ArrayList<Map<String, Object>>();
  20. for (int i = 0; i < imageIds.length; i++)
  21. {
  22. Map<String, Object> listItem = new HashMap<String, Object>();
  23. listItem.put("image", imageIds[i]);
  24. listItems.add(listItem);
  25. }
  26. // 获取显示图片的ImageView
  27. imageView = (ImageView) findViewById(R.id.imageView);
  28. // 创建一个SimpleAdapter
  29. SimpleAdapter simpleAdapter = new SimpleAdapter(this,
  30. listItems
  31. // 使用/layout/cell.xml文件作为界面布局
  32. , R.layout.cell, new String[] { "image" },
  33. new int[] { R.id.image1 });
  34. grid = (GridView) findViewById(R.id.grid01);
  35. // 为GridView设置Adapter
  36. grid.setAdapter(simpleAdapter);
  37. // 添加列表项被选中的监听器
  38. grid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
  39. {
  40. @Override
  41. public void onItemSelected(AdapterView<?> parent, View view, int                                                         position, long id)
  42. {
  43. // 显示当前被选中的图片
  44. imageView.setImageResource(imageIds[position]);
  45. }
  46. @Override
  47. public void onNothingSelected(AdapterView<?> parent)
  48. {
  49. }
  50. });
  51. // 添加列表项被单击的监听器
  52. grid.setOnItemClickListener(new AdapterView.OnItemClickListener()
  53. {
  54. @Override
  55. public void onItemClick(AdapterView<?> parent, View view,
  56. int position, long id)
  57. {
  58. // 显示被单击的图片
  59. imageView.setImageResource(imageIds[position]);
  60. }
  61. });
  62. }
  63. }

XML文件

Main.xml

  1. 1.<?xml version="1.0" encoding="utf-8"?>
  2. 2.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. 3. android:orientation="vertical"
  4. 4. android:layout_width="match_parent"
  5. 5. android:layout_height="match_parent"
  6. 6. android:gravity="center_horizontal">
  7. 7. <!-- 定义一个GridView组件 -->
  8. 8. <GridView
  9. 9. android:id="@+id/grid01"
  10. 10. android:layout_width="match_parent"
  11. 11. android:layout_height="wrap_content"
  12. 12. android:horizontalSpacing="1pt"
  13. 13. android:verticalSpacing="1pt"
  14. 14. android:numColumns="4"
  15. 15. android:gravity="center"/>
  16. 16. <!-- 定义一个ImageView组件 -->
  17. 17. <ImageView android:id="@+id/imageView"
  18. 18. android:layout_width="240dp"
  19. 19. android:layout_height="240dp"
  20. 20. android:layout_gravity="center_horizontal"/>
  21. 21.</LinearLayout>

Cell.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="horizontal"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:gravity="center_horizontal"
  7. android:padding="2pt">
  8. <ImageView
  9. android:id="@+id/image1"
  10. android:layout_width="50dp"
  11. android:layout_height="50dp"
  12. />
  13. </LinearLayout>

效果:

其中关键代码是

  1. SimpleAdapter simpleAdapter = new SimpleAdapter(this,
  2. listItems
  3. // 使用/layout/cell.xml文件作为界面布局
  4. , R.layout.cell, new String[] { "image" },
  5. new int[] { R.id.image1 });

SimpleAdapter的介绍:

第一个参数:是context

第二个参数:是一个List<?extends Map<String,?>>类型的集合对象,该集合中每个Map<String,?>对象生成一个列表项

第三个参数:制定一个界面布局的ID

第四个参数:是一个String[]类型的参数,该参数决定提取Map<String,?>对象中哪些key对应的value来生成列表项

第五个参数:应该是一个int[]类型参数,决定填充哪些组件

SimpleAdapter 网络视图:带预览的图片浏览器的更多相关文章

  1. FileUpload控件实现单按钮图片自动上传并带预览显示

    FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理:   FileUpload控件默认不支持服务端的ONCHANGE事件,此时用一种变通的方法借用客户端的onchange事件,调 ...

  2. Asp.net实现同页面内多图片自动上传并带预览显示

    FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: 此方法适合针对有后台生成的图片相关内容,例如购物网站商品展示页面中的封面图片,图片的数量由后台访问数据库,并加载到页面.这种 ...

  3. 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器

    前言:最近公司的项目在做全网营销,要做非微信浏览器的wap 站 的改版,其中涉及到的一点技术就是采用H5 选择手机相册中的图片,或者拍照,再将获取的图片进行压缩之后上传. 这个功能模块主要有这5点比较 ...

  4. 小程序实现图片上传,预览以及图片base64位处理

    最近一段时间在做小程序项目,第一期功也完工了.需要好好总结一下经验,把项目中遇到的问题好好总结一下,遇到的问题,踩过的坑.今天写一个小程序实现图片上传,预览,以及删除,图片base64位处理.下面就是 ...

  5. 可拖拽和带预览图的jQuery文件上传插件ssi-uploader

    插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...

  6. 基于HTML5的可预览多图片Ajax上传

    一.关于图片上传什么什么的 在XHTML的时代,我们使用HTML file控件上传图片一次只能上传一张.要一次上传多图,做法是借助于flash.例如swfupload.js.可惜,使用复杂的点,比如f ...

  7. JAVA打印类(带预览)

    package tool; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; ...

  8. HTML5可预览多图片ajax上传(使用formData传递数据)

    HTML5可预览多图片ajax上传(使用formData传递数据) 在介绍上传图片之前,我们简单的来了解下FormData的基本使用:介绍完成后这些基本知识后,我们会在文章最后提供一个demo,就是a ...

  9. input type=file实现图片上传,预览以及图片删除

    背景 前两天在做一个PC网站的意见反馈,其中涉及到了图片上传功能,要求可以上传多张图片,并且支持图片上传预览及图片删除, 图片上传这一块以前没怎么搞过,而且一般也很少会碰到这样的需求,所以在做这个功能 ...

随机推荐

  1. android MD5 SHA1

    参考文章: AndroidStudio 中怎样查看获取MD5和SHA1值(应用签名)(https://www.cnblogs.com/zhchoutai/p/7102516.html) 使用 java ...

  2. Windows窗体技术

    Windows窗体技术 Winform例子下载 https://pan.baidu.com/s/1zXO8gVuFAeKQ_Tnz55A4VQ  密码:i1r6

  3. Qt使用MSVC编译器不能正确显示中文的解决方案

    用VisualStudio做为IDE,使用Qt框架,显示中文,会出现乱码的情况. 原因:MSVC编译器虽然可以正常编译带BOM的UTF-8编译的源文件,但是生成的可执行文件的编码是Windows本地字 ...

  4. Eclipse json文件报错

    只要找一个json在线解析,验证你的json文件格式的正确性,错误可以忽略. 如要消除红叉,关闭Json Validation即可,如下操作: Window > Preferences > ...

  5. Haskell语言学习笔记(56)Lens(3)

    手动计算(view, over, set, to, _1) view l = getConst . l Const over l f = runIdentity . l (Identity . f) ...

  6. 【Java】JVM(二)、Java垃圾收集算法

    一.标记-清除算法 算法主要分为两个步骤 1. 标记: 遍历所有的 GC Roots, 然后标记所有可达对象为存活对象 2. 清除: 遍历堆中所有对象,然后将没有标记的对象清除. 存在不足: 1. 效 ...

  7. Mycat入门及简单规则

    以下都来自网络: 官网: http://www.mycat.io/ 官网配置文件解析: https://github.com/MyCATApache/Mycat-Server/wiki/9.0-%E6 ...

  8. golang 打印变量类型

    fmt.Println("type:", reflect.TypeOf(err.Error()))

  9. 查看webdriver针对浏览器的一些函数

    在用webdriver对浏览器进行操作时,很多操作并不是那么好找,后来在朋友的推荐下可以用下面的方法来寻找针对浏览器的一些操作,函数或属性等,这样方便我们可以查找一些方法去完成我们要的操作. 下面是查 ...

  10. python,使用PIL库对图片进行操作

    在做识别验证码时,需要对验证码图片进行一些处理,所以就学习了一下PIL的知识,下面是我总结的一些常用方法. 注明:图片的操作都需要Image库,所以要使用import Image导入库 1.打开图片 ...