利用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. java自定义线程池

    如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间.那么有没有一种办法使得线程可以复用,就是执行完一个任 ...

  2. python语法学习之函数、类、模块

    Python中通过使用类(class)和对象(object)来实现面向对象(object-oriented programming,简称OOP)的编程. 面向对象编程的最主要目的是提高程序的重复使用性 ...

  3. redis-trib.rb报错:/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- redis (LoadError)

    报错如下: /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- redis ...

  4. Ansiable Manage MySQL global variables

    mysql_variables - Manage MySQL global variables New in version 1.3. Synopsis Requirements (on host t ...

  5. Java ReentrantLock和synchronized两种锁定机制的对比

    多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言.核心类库包含一个 Thread 类,可以用它来构建.启动 ...

  6. Spring的属性注入, byName和byType还有注入List属性

    昨天花了一晚上的时间又仔细研究了一下Spring的属性注入, 一个新的方法: 自动装载和autowire, 不过因为又想起来老师说不常用, 感觉这一晚上的时间有点亏, 还是自己太愚钝了, 反应太慢 先 ...

  7. C++ 静态数据成员和静态成员函数

    一 静态数据成员: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义(初始化)不应该被放在头文件中,因为这样做会引起重复定义这样的错误.即使加上#ifndef ...

  8. ASP.NET中修改从数据库获取的datatable中的值

    有些时候,我们从数据库表中获取一个实体的对象,但有些内容并不是最终显示的内容,格式也都是不一样.经过一番尝试,发现datatable中的数值如果跟想要改变的类型不一致,就无法更改,只有添加新列,然后把 ...

  9. asp.net 关于Response.Redirect重定向前无法弹出alert对话框的问题

    要实现的功能:某项操作后,使用alert()提示框提示"操作成功"之类的提示,然后使用response.Redirect()来进行页面重定向. 出现的问题:运行代码,操作完成后,直 ...

  10. runloop - 面试题

    2.