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 android:id="@+id/switcher"
  18. android:layout_width="300dp"
  19. android:layout_height="300dp"
  20. android:layout_gravity="center_horizontal"
  21. android:inAnimation="@android:anim/fade_in"
  22. android:outAnimation="@android:anim/fade_out"/>
  23. </LinearLayout>

主界面

  1. package com.example.viewswitcher
  2.  
  3. import android.app.Activity
  4. import android.os.Bundle
  5. import android.view.View
  6. import android.view.ViewGroup.LayoutParams
  7. import android.widget.*
  8. import android.widget.ViewSwitcher.ViewFactory
  9. import android.widget.AdapterView.OnItemClickListener
  10. import android.widget.AdapterView.OnItemSelectedListener
  11.  
  12. class MainActivity : Activity()
  13. {
  14. internal var imageIds = intArrayOf(R.drawable.bomb5, R.drawable.bomb6,
  15. R.drawable.bomb7, R.drawable.bomb8, R.drawable.bomb9,
  16. R.drawable.bomb10, R.drawable.bomb11, R.drawable.bomb12,
  17. R.drawable.bomb13, R.drawable.bomb14, R.drawable.bomb15,
  18. R.drawable.bomb16)
  19. override fun onCreate(savedInstanceState: Bundle?)
  20. {
  21. super.onCreate(savedInstanceState)
  22. setContentView(R.layout.activity_main)
  23. // 创建一个List对象,List对象的元素是Map
  24. val listItems = ArrayList<Map<String, Any>>()
  25. for (i in imageIds.indices)
  26. {
  27. val listItem = HashMap<String, Any>()
  28. listItem["image"] = imageIds[i]
  29. listItems.add(listItem)
  30. }
  31. // 获取显示图片的ImageSwitcher
  32. val switcher = findViewById<ImageSwitcher>(R.id.switcher)
  33. // 为ImageSwitcher设置图片切换的动画效果
  34. // 使用Lambda表达式创建ViewFactory,表达式是makeView方法()的方法体
  35. switcher.setFactory {
  36. // 创建ImageView对象
  37. val imageView = ImageView(this@MainActivity)
  38. imageView.scaleType = ImageView.ScaleType.FIT_CENTER
  39. imageView.layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
  40. LayoutParams.WRAP_CONTENT)
  41. // 返回ImageView对象
  42. imageView
  43. }
  44. // 创建一个SimpleAdapter
  45. val simpleAdapter = SimpleAdapter(this, listItems, R.layout.cell,
  46. arrayOf("image"), intArrayOf(R.id.image1)) // 使用/layout/cell.xml文件作为界面布局
  47. val grid = findViewById<GridView>(R.id.grid01)
  48. // 为GridView设置Adapter
  49. grid.adapter = simpleAdapter
  50. // 添加列表项被选中的监听器
  51. grid.onItemSelectedListener = object : OnItemSelectedListener
  52. {
  53. override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long)
  54. {
  55. // 显示当前被选中的图片
  56. switcher.setImageResource(imageIds[position])
  57. }
  58.  
  59. override fun onNothingSelected(parent: AdapterView<*>)
  60. {
  61. }
  62. }
  63. // 添加列表项被单击的监听器
  64. grid.setOnItemClickListener {parent, view, position, id ->
  65. // 显示被单击的图片
  66. switcher.setImageResource(imageIds[position])
  67. }
  68. }
  69. }

主程序

ImageSwitcher 图片切换器的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 从零開始学android&lt;ImageSwitcher图片切换组件.二十六.&gt;

    ImageSwitcher组件的主要功能是完毕图片的切换显示,比如用户在进行图片浏览的时候.能够通过button点击一张张的切换显示的图片,并且使用ImageSwitcher组件在每次切换的时候也能够 ...

  7. Android学习笔记 ImageSwitcher图片切换组件的使用

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  8. ImageSwitcher图片切换的简单用例

    ImageSwitcher的原理:ImageSwitcher有两个子View:ImageView,当左右滑动的时候,就在这两个ImageView之间来回切换来显示图片 实现左右滑动切换图片 BaseA ...

  9. Android——ImageSwitcher 图片切换

    public class ImageSwitcherActivity extends Activity implements OnClickListener,        ViewFactory { ...

随机推荐

  1. 2013.6.24 - OpenNE第四天

    今天晚上跟师兄讨论,这那几篇论文,对于<领域多词表 达翻译对的自动抽取及其应用>那篇,我的感觉是跟实体识别不太吻合.他的大概意思就是先讲所有有可能的多词表达都找出来,然后在用C-value ...

  2. 牛客NOIP暑期七天营-提高组1 解题报告

    https://ac.nowcoder.com/acm/contest/920#question A 构造+双指针 发现m的限制是1e5,而点数是5e4,所以不能构造太多的边,思考一下最短路树的定义. ...

  3. 0023SpringMVC自定义类型转换器

    页面录入的字符串:2019/12/05可以映射到实体的日期属性上,但是如果是录入2019-12-05就会报错400 bad request,想要以2019-12-05日期格式的方式映射到实体的日期属性 ...

  4. Visual Studio 各版本对应关系

    Known Name Version Latest KB / Revision Visual Studio 6 6 Service Pack 6; 6.0.3790.0; VB6.0-KB290887 ...

  5. docker 进程 转载:https://www.cnblogs.com/ilinuxer/p/6188303.html

    今天我们会分析Docker中进程管理的一些细节,并介绍一些常见问题的解决方法和注意事项. 容器的PID namespace(名空间) 在Docker中,进程管理的基础就是Linux内核中的PID名空间 ...

  6. Linux secureCRT 介绍和安装和优化

    修改背景颜色

  7. 转 Storm JAVA_HOME is incorrectly set.

    问题可能有两个原因: 1.在环境变量中未设置JAVA_HOME变量名称. 解决办法: 在环境变量中添加. 或者在storm中的bin文件下有一个storm-config.cmd,使用文本打开,查询JA ...

  8. 配置asgi来达到能处理websocket

    在项目中使用了webscoket进行实时通讯,但是生产环境又使用了django+nginx+uwsgi的部署方式,我们都知道uwsgi并不能处理websocket请求,所以需要asgi服务器来处理we ...

  9. mysql 函数表

    Name Description ABS() Return the absolute value ACOS() Return the arc cosine ADDDATE() Add time val ...

  10. codevs:2849 素数判定 3:输入一个正整数x(3<=x<=100000),判断x是否是质数,如果是质数则输出信息“prime”,否则输出“composite”。

    #include<iostream>#include<cstdio>#include<cmath>using namespace std;int a[2];int ...