<a target="_blank" href="http://www.cnblogs.com/zxl-jay/">青春流水指间、</a>
每段路,都有即将要来的旅程 每颗心,都有值得期待的成分
今天在做一个软件界面时用到了imageswitcher和gallery控件,在看api时,感觉上面的例子讲的不是很具体,效率并不高。在这里我就以一个图片浏览功能来具体说明这两个控件的用法。
首先看运行效果:

在这里图片我用的是api中的图片。先说下这个图片浏览的功能吧,首先,它要实现图片的切换,当点击上面的小图时,下方会出现对象的大图,其次就是实现上图中最上面的样式,即一个图片和一个文本。下来我们还要实现起始位置居中,滑动小图的速率的控制,最上面小图的无限循环等功能。下面我就将具体实现代码附下,供大家参考。
main.xml:
在上面我是自定义视图,引用自己定义的一个gallery,在这个gallery中我重新设置的滑动的速率,让它滑动速度放慢,下面是我自定义的gallery
代码:
mygallery.java:
按 ctrl+c 复制代码
下面是在定义gallery布局文件的代码:
gallery_item.xml:
下面就是核心实现代码:
pictruechangeactivity:
这里要加载一个背景文件,放在values目录下,文件名为attrs.xml,代码如下:
这样显示的图片就有一个相框一样的边框。
在上面的代码中,和api中不同的是做了四点改进:
1.实现滑动可以无限滑动,就是在上面的getcount()中,返回的是一个integer.max_value,这样可以做到无限滑动。
2.提高在滑动时大图的显示效率。就是在上面,我自定义了一个map,将滑动过的位置全部记录下来,等到下次滑到这个位置时,就不必再去加载图片了,类似于缓存。这样提高了效率。
3.在点击事件中,如果重复点击同一张图片,不会去加载图片。在这里我设置了一个标记位置,如果标记位置和当前位置一样,那就不去加载图片。
4.设置起始位置为第二位,这样初始界面比较美观,显示的图片两边都有图片。