Android应用开发UI控件ImageSwitcher的使用

  次阅读 来源:互联网(转载协议) 2016-01-19 12:13 我要评论(0)

本文来聊一聊AndroidUI开发中ImageSwitcher控件的使用。ImageSwitcher控件与ImageView类似,都可以用 于显示图片,但是ImageSwitcher通过名字可以看出,主要是用于多张图片的切换显示。在本篇中,会介绍ImageSwitcher控件的基本属 性的设置以及常用方法的调用。在最后会通过一个示例Demo来展示本篇博客中讲到的一些内容。

ImageSwitcher

ImageSwitcher是一个图片切换器,它间接继承自FrameLayout类,和ImageView相比,多了一个功能,那就是它说显 示的图片切换时,可以设置动画效果,类似于淡进淡出效果,以及左进右出滑动等效果。

既然ImageSwitcher是用来显示图片的控件,AndroidAPI为我们提供了三种不同方法来设定不同的图像来源,方法有:

setImageDrawable(Drawable):指定一个Drawable对象,用来给ImageSwitcher显示。

setImageResource(int):指定一个资源的ID,用来给ImageSwitcher显示。

setImageURL(URL):指定一个URL地址,用来给ImageSwitcher显示URL指向的图片资源。

动画效果设定

上面介绍到,ImageSwitcher可以设置图片切换时,动画的效果。对于动画效果的支持,是因为它继承了ViewAnimator类,这 个类中定义了两个属性,用来确定切入图片的动画效果和切出图片的动画效果:

android:inAnimation:切入图片时的效果。

android:outAnimation:切出图片时的效果。

以上两个属性如果在XML中设定的话,当然可以通过XML资源文件自定义动画效果,但是如果只是想使用Android自带的一些简单的效果的 话,需要设置参数为 @android:anim/AnimName 来设定效果,其中AnimName为指定的动画效果。如果在代码中设定的话,可以直 接使用setInAnimation()和setOutAnimation()方法。它们都传递一个Animation的抽象对象,Animation用 于描述一个动画效果,一般使用一个AnimationUtils的工具类获得。对于动画效果,不是本片博客的重点,关于Android的动画效果,以后再 详细讲解。

对于动画效果,一般定义在android.R.anim类中,它是一个final类,以一些int常量的形式,定义的样式,这里仅仅介绍两组样 式,淡进淡出效果,以及左进右出滑动效果,如果需要其他效果,可以查阅官方文档。

fede_in:淡进。

fade_out:淡出

slide_in_left:从左滑进。

slide_out_right: 从右滑出。

一般使用的话,通过这些常量名称就可以看出是什么效果,这里并不是强制Xxx_in_Xxx就一定对应了setInAnimation()方 法,但是一般如果不成组设定的话,效果会很丑,建议还是成组的对应In和Out设定效果。

ViewFactory

在使用ImageSwitcher的时候,有一点特别需要注意的,需要通过setFactory()方法为它设置一个 ViewSwitcher.ViewFactory接口,设置这个ViewFactory接口时需要实现makeView()方法,该方法通常会返回一个 ImageView,而ImageSwitcher则负责显示这个ImageView。如果不设定ViewFactory的 话,ImageSwitcher将无法使用。通过官方文档了解到,setFactory()方法被声明在ViewSwitcher类中,而 ImageSwitcher直接继承自ViewSwitcher类。ViewSwitcher的功能与ImageSwitcher类似,只是 ImageSwitcher用于展示图片,而ViewSwitcher用于展示一些View视图。

可以这么理解,通过ViewFactory中的makeView()方法返回一个新的View视图,用来放入ViewSwitcher中展示, 而对于ImageSwitcher而言,这里通常返回的是一个ImageView。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...