利用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>

效果

转载于:https://www.cnblogs.com/wwjldm/p/6930495.html

基于图像切换器(imageSwitcher)的支持动画的图片浏览器相关推荐

  1. android高级组件,Android高级组件ImageSwitcher图像切换器使用方法详解

    图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的"Windows照片查看器"中的上一张.下一张切换图片的功能.在使用ImageSwitcher时,必 ...

  2. 第5组UI 让你的界面酷炫到底-ViewAniMator之ViewSwitcher、ImageSwitcher(图像切换器)、TextSwitcher(文本切换器)、ViewFlipper

    ViewAniMator是一个基类,它继承了FrameLayout,因此它表现了FrameLayout的一些特征,可以将多个View组件"叠"在一起.额外的功能是:在View切换时 ...

  3. 安卓学习笔记23:常用控件 - 网格视图与图像切换器

    文章目录 零.学习目标 一.网格视图 (一)概述 (二)继承关系图 (三)常用属性 二.图像切换器 (一)概述 (二)继承关系图 三.案例演示 - 选择水果 (一)运行效果 (二)涉及知识点 (三)实 ...

  4. 【论文03】基于图像的动态头像实时面部动画

    [论文03] <Real-time Facial Animation with Image-based Dynamic Avatars> <具有基于图像的动态化身的实时面部动画> ...

  5. 图像查看器--能同时打开多个图片

    许多图片查看器(如Pixcel和Acdsee Pro等)具有优秀的查看.编辑等多种功能,但有一个很大的弊端,就是不能同时显示多张图片,比如,你想对比同一张图片经过不同处理的结果,此时,同时显示多张图片 ...

  6. iOS图片浏览器,控制器只支持竖屏,图片浏览器可横屏,缩放,下载 基于UICollectionView

    基于UICollectionView的pagingEnabled属性, github链接 https://github.com/DYLAN-LWB/WBImageBrowser //listAM 为包 ...

  7. EdgeView 2 for Mac(图像查看器)

    EdgeView 2 是一款图像查看器软件,支持多点触控触控板,您可以使用捏合和缩小手势进行放大和缩小,并使用滑动手势在图像之间滑动,它还会将图像预加载到图像缓存中并快速呈现. 官方介绍 EdgeVi ...

  8. Android实例,实现左右滑动查看相册,图片切换器的应用

    效果图如下: activity_main.xml文件 <?xml version="1.0" encoding="utf-8"?> <Rela ...

  9. HDMI切换器 8K DP切换器WA107_KVM

    HDMI HDMI切换器 8K DP切换器, TYHPE C切换器 1,支持红外遥控 2,支持8K 4K144 3,支持种不同显示器之前相互切换 4,支持不同电脑之间相互切换 5,兼容性非常好

最新文章

  1. centos下tomcat6.0.28配置
  2. 什么是微分?什么是导数?如何利用微分-导数方程求导数?
  3. 基于springboot实现的仓储管理系统
  4. 计算机组成原理——总线结构
  5. JVM的堆、栈、方法区
  6. 线性回归 —— python
  7. 【OpenCV 例程200篇】06. 像素的编辑(img.itemset)
  8. boost::asio的C/S结构笔记
  9. static关键字_乐字节Java|this关键字、static关键字、block块
  10. win10中VM15内centos7的安装
  11. 用GParted工具修改Ubuntu系统中/home分区大小
  12. 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第七章 实验传统的兴起
  13. 关于goole IO大会发布的android M和android studio1.3的更新
  14. php如何配置gii,深入浅析yii2-gii自定义模板的方法
  15. 51单片机调整时钟Proteus仿真
  16. 130个物联网示范项目上榜!工信部权威发布
  17. win10打开蓝牙_Win10系统中蓝牙鼠标可以配对却无法使用应该如何解决?
  18. CComObject 。。。(转)
  19. PyTorch Geometric(PyG) torch_geometric.nn.conv.gcn_conv源码详解
  20. 带负荷测试要求二次最小电流_带负荷测试的判别

热门文章

  1. elementUi、iview、ant Design源码button结构篇
  2. Adb+.net 实现微信跳一跳自动化
  3. 提高服务器并发量,有关系统配置的常规方法
  4. iOS学习之CoreLocation相关知识
  5. 第十三课时:递归组件的使用
  6. javascript中函数参数以及函数中局部变量作用域一点点理解
  7. IN和EXISTS的性能对比结论
  8. Java中如何获得集合变量的集合中的类型参数
  9. SQL Server 行列转换(1)
  10. DataColor的SnowLeopard支持