利用GridView和ImageSwitcher的基本用法

  1. public class MainActivity extends Activity
  2. {
  3. int[] imageIds = new int[]
  4. {R.drawable.bomb5,R.drawable.bomb6,R.drawable.bomb7,R.drawable.bomb8, R.drawable.bomb9,R.drawable.bomb10,R.drawable.bomb11,R.drawable.bomb12,

R.drawable.bomb13,R.drawable.bomb14, R.drawable.bomb15,R.drawable.bomb16 };

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

XML文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:gravity="center_horizontal">
  7. <!-- 定义一个GridView组件 -->
  8. <GridView
  9. android:id="@+id/grid01"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:horizontalSpacing="2dp"
  13. android:verticalSpacing="2dp"
  14. android:numColumns="4"
  15. android:gravity="center"/>
  16. <!-- 定义一个ImageSwitcher组件 -->
  17. <ImageSwitcher
  18. android:id="@+id/switcher"
  19. android:layout_marginTop="30dp"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:layout_gravity="center_horizontal"
  23. android:inAnimation="@android:anim/fade_in"
  24. android:outAnimation="@android:anim/fade_out"/>
  25. </LinearLayout>
  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="4dp">
  8. <ImageView
  9. android:id="@+id/image1"
  10. android:layout_width="50dp"
  11. android:layout_height="50dp"
  12. />
  13. </LinearLayout>

效果

基于图像切换器(imageSwitcher)的支持动画的图片浏览器的更多相关文章

  1. android学习之--网格视图(GridView)和图像切换器(ImageSwitcher)

             GridView用于在界面上按行.列分布显示多个组件.GridView和ListView有共同父类:AbsListView. GridView与ListView的差别在于:ListV ...

  2. 图像切换器(ImageSwitcer)的功能与用法

    ImageSwitcher继承了VewSwitcher,因此它具有与ViewSwitcher相同的特征,可以在切换View组件时使用动画效果.ImageSwitcher继承了ViewSwitcher并 ...

  3. Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法

    网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似 ...

  4. iOS图案锁,支持动画、图片、绘图

    最近忙着搭建一个聊天用的框架,过几天应该会整理写出来吧,原理不难,但是实现后会省很多事.好久没写博客,周末心血来潮写了个图案锁,这东西没什么技术含量,网上一堆,这次这个图案锁顺便联系了怎么打包使用.a ...

  5. ImageSwitcher (图像切换器,显示图片)

    ImageSwitcher继承了ViewSwitcher,主要在切换图片时加入动画效果 使用方法: 1.为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的Vie ...

  6. 图片切换器(ImageSwitcher)的功能与用法

    ImageSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件时使用动画效果.ImageSwitcher继承了ViewSwitcher ...

  7. Android应用开发学习之图片切换器

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 如果我们要实现类似Windows的照片查看器切换上一张下一张照片的效果,可以使用图片切换器ImageSwitcher ...

  8. 基于React实现的【绿色版电子书阅读器】,支持离线下载

    代码地址如下:http://www.demodashi.com/demo/12052.html MyReader 绿色版电子书阅读器 在线地址:http://myreader.linxins.com ...

  9. Android 高级UI设计笔记12:ImageSwitcher图片切换器

    1. ImageSwitcher ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果...,颇有感觉啊.做相册一绝 2. 重要方法 setImageURI(Uri  ...

随机推荐

  1. UI5-文档-4.34-Custom Controls

    在这一步中,我们将使用自定义控件扩展SAPUI5的功能.我们希望对详细页面上显示的产品进行评级,因此我们使用SAPUI5扩展机制创建了多个标准控件的组合,并添加了一些粘合代码以使它们能够很好地一起工作 ...

  2. UI5-文档-4.21-Data Types

    发票清单已经很好看了,但是没有指定价格的发票是什么?通常价格以技术格式存储,并带有'.数据模型中的分隔符.例如,我们的菠萝发票上的计算价格是87.2,没有货币.我们将使用SAPUI5数据类型正确地格式 ...

  3. 解决:Invalid character found in method name. HTTP method names must be tokens

      阿里云上弄了一个tomcat,经常半夜发送崩溃,查看日志发现这个东西,查阅资料发现是Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize字 ...

  4. docker 配置远程访问

    系统: centos 7 Docker version 1.12.6 yum 安装的  #yum install docker docker server在192.168.111.120上 # vim ...

  5. 团队作业4 Alpha冲刺

    第一天 日期:2018/6/13 1.今日完成任务情况以及遇到的问题 许征航:实现了推荐算法的基础逻辑,并按照模块化的思想对算法进行了分步整理. 遇到的问题:现有条件无法实现协同过滤算法,需要简化模型 ...

  6. 大型运输行业实战_day04_2_高级查询

    1.高级查询最总效果 2.高级查询步骤 2.1页面输入框显示 开始车站:<input id="startStation" type="text" valu ...

  7. Java对称与非对称加密解密,AES与RSA

    加密技术可以分为对称与非对称两种. 对称加密,解密,即加密与解密用的是同一把秘钥,常用的对称加密技术有DES,AES等 而非对称技术,加密与解密用的是不同的秘钥,常用的非对称加密技术有RSA等 为什么 ...

  8. hdoj1260 Tickets (简单DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 思路: 很简单的DP题,状态方程也比较容易想到,用f[i]表示到第i个人所耗的最短时间,详见代码 ...

  9. C++的编译与连接

    编译器的任务是把我们人类通常能够读懂的文本形式的 C 语言文件转化成计算机能明白的目标文件.1.  预编译生成的仍然是.c文件1)把"include"的文件拷贝到要编译的源文件中. ...

  10. error CS1010 CS8025 CS1012 CS1525 常见文档错误解决

    error CS1010: Newline in constant error CS8025: Parsing error error CS1012: Too many characters in c ...