第9章仿画廊视图效果.ppt.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章仿画廊视图效果.ppt.ppt

* 第9章 仿画廊视图效果 网络资源:http://10/case/resource.html QQ群:287966120、314753495 授课老师:高成珍 QQ号:1281147324 本章案例效果分析 该界面包含两部分:上方为用于显示大图的ImageSwitcher,下方为用于显示所有图片缩略图的水平线性布局。由于图片较多,屏幕的宽度无法容纳所有的图片,默认情况下,水平线性布局中超出屏幕边界的控件将无法显示。为了能让所有的图片都可以在屏幕上显示,在此,在水平线性布局外面包裹了一个水平滚动条。通过横向拖动滚动条,即可查看超出屏幕部分的图片。 由于图片控件的多少需要根据图片的个数来确定,图片控件的状态也是根据用户操作来动态变化的,所以不宜在布局文件中添加和指定。因此,布局中LinearLayout的内容暂时为空,仅仅指定了线性布局的方向。 界面分析 ImageSwitcher图片切换器 ImageSwitcher(图片切换器)主要用于图片间的切换,可以显示图片,与ImageView的不同之处在于当切换显示图片时,可以为图片添加进入时和退出时动画。 既然是切换那么肯定是在两个视图之间进行的,ImageSwitcher通过setFactory()方法来创建两个需要切换的视图。该方法需要传递一个ViewFactory类型的参数,该参数是一个工厂接口,专门用于创建控件,该接口内部只有一个makeView()方法,用于返回所创建的控件。实现ViewFactory接口时,必须要实现makeView()方法,作为图片切换器,makeView()方法应该返回能够显示图片的控件,在此为ImageView。在setFactory()方法内部,实际上调用了两次ViewFactory接口的makeView()方法,从而创建了两个ImageView控件进行切换。 ImageSwitcher图片切换器 在创建ImageSwitcher对象之后,还必须调用它的setFactory()方法对它进行初始化,否则无法实现切换功能。在图片切换时可以为其添加进入时和退出时动画,有两种方式: 1)在布局文件中,为ImageSwitcher标签添加android:inAnimation和android:outAnimation属性分别设置进入时的动画和退出时的动画。既可以引用系统提供的动画,也可以是用户自定义的动画。例如淡入淡出效果设置如下。 android:inAnimation=@android:anim/fade_in“ android:outAnimation=@android:anim/fade_out ImageSwitcher图片切换器 2、在Java代码中,调用ImageSwitcher对象的setInAnimation()和setOutAnimation()方法,将相应的动画资源传递进去即可。例如: mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in)); mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out)); 使用AnimationUtils类的loadAnimation()方法创建Animation对象时需指定动画资源,同样可使用自定义或者系统自带的,在android.R类中定义了相应的常量,源文件在SDK目录下的platforms\android-Xx\data\res\anim文件夹中。 Java反射机制动态获取资源 在前面图片切换的案例中,我们将所有的图片ID保存在一个数组中,对这个数组进行初始化时,需要将每个图片的ID都添加进去,如果图片较多时,代码比较冗长,特别是新添加图片或对图片名称进行修改时,还需要对程序的源代码进行修改,扩展性和灵活性不太好。 实际上可以通过Java的反射机制动态获取Android中的图片ID。这是因为Android中的图片文件都会在R.drawable类中生成资源ID,并且一个图片的文件对应于R.drawable类的一个成员变量。只需要获取R.drawable类中的所有成员变量,即可获取所有图片的ID,然后对成员变量名进行判断即可获取符合要求的图片。而对于Java反射机制而言,获取成员变量名非常简单。 Java反射机制动态获取资源 所谓的反射是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的

您可能关注的文档

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档