zoukankan      html  css  js  c++  java
  • SimpleAdapter 网络视图:带预览的图片浏览器

    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[]类型参数,决定填充哪些组件

  • 相关阅读:
    分享一个本人打造的公众号吸粉、推广方案。
    iOS开发简记(8):数据持久化
    iOS开发简记(7):网络请求模块
    iOS开发简记(6):storyboard的使用
    iOS开发简记(5):设备唯一标识与全局变量
    iOS开发简记(4):录音AVAudioRecorder
    iOS开发简记(3):tips提示
    iOS开发简记(2):自定义tabbar
    spring+mybatis+springMVC框架配置多数据源
    Docker常用操作
  • 原文地址:https://www.cnblogs.com/wwjldm/p/6929498.html
Copyright © 2011-2022 走看看