`

Android多媒体学习十一:实现仿百度图片查看功能

阅读更多

我们知道,进入百度图片后,输入一个关键字后,首先看到的是很多缩略图,当我们点击某张缩略图时,我们就可以进入到大图显示页面,在

大图显示页面,中包含了一个图片画廊,同时当前大图为刚刚我们点击的那张图片。现在我们看看在Android中如何实现类似的效果:

首先,我们需要有一个控件来显示缩略图,这里没有什么比GridView更加合适了。

配置文件如下:

对于GridView中每一项是一张缩略图,我们需要继承BaseAdapter,实现自己的一个GridImageAdapter,代码:

然后,我们就可以在Activity中通过查询MediaStore的多媒体图片库来查询所有的图片的缩略图,缩略图所在的位置是:

MediaStore.Images.Thumbnails。Activity代码如下:

注意到,我们记录了,所有缩略图对应的id号,和当前的用户选择的位置,然后通过Intent传递到第二个展示界面。第二个界面的布局文件如下:我们用了一个Gallery和一个ImageButton来实现

然后,对应的Activity如下:

可以看到,当用户点击Gallery中某一项时,触发onItemClick事件,在其中,我们通过根据该缩略图对应的Image_ID来从MediaStore.Images.Media中查询该缩略图对应的大图。并在ImageButton中显示。

这里当图片很多时,可能会出现内存溢出,为了避免这种情况,可以更加Gallery的特点,使用缓存。保存当前可见的缩略图的前三个到后三个。其余的全部recycle。当用户点击Gallery的时候,在判断当前的位置,如果大于或小于某个值时,则重新更新缓存。这样保证内存中的缩略图的个数总是6+Gallery.getLastVisiblePosition-Gallery.getFirstVisiblePosition个。其实这就是浮动缓存窗口,一个固定大小窗口在整个坐标(全部缩略图)上游动。这里没有实现,以后待续。

同时,你可能已经注意到,程序中使用到了一个BitmapUtils类,这个类是封装了一系列对查询图片,并将其解析为Bitmap的类。

代码如下:

这样就实现了,类似百度图片浏览的效果。效果图如下:

缩略图

大图预览

分享到:
评论

相关推荐

    Android代码-[安卓开源]仿百度桌面转盘小工具项目.zip

    在这个项目中,我们看到的"仿百度桌面转盘小工具"是针对Android平台的一个自定义视图组件,它模拟了百度桌面应用中的交互式转盘功能。 项目中包含的文件有: 1. `javaapk.com_0000.png` 和 `javaapk....

    Android 开发聊天工具 模仿QQ,实现网络即时聊天功能。

    11. **多媒体支持**: 实现图片、音频、视频等多媒体消息的发送和接收,可能涉及文件上传到云端服务器,以及多媒体内容的压缩和解码。 12. **自定义动画和特效**: 添加滑动删除消息、气泡动画、消息发送状态显示等,...

    仿制微信的android聊天软件

    7. **定位服务**:实现类似微信的共享位置功能,需要用到Android的Location API,可能结合高德、百度等地图SDK。 8. **权限管理**:随着Android系统权限模型的变更,开发者需要理解和适配运行时权限,确保应用在...

    Android 高仿微信实时聊天 补充了第三方jar

    同时,为了实现语音、图片、视频等多媒体消息的发送,需要处理文件上传下载,这可能涉及到文件IO和流操作。 最后,第三方jar文件的使用意味着开发者借助了一些预封装的库,例如用于网络通信的第三方库(如Volley、...

    qt超级mp3音乐播放器,高仿百度音乐播放器

    它提供了一套丰富的类库,用于构建图形用户界面、网络通信、数据库连接等功能,支持Windows、Linux、macOS、Android等操作系统。Qt的设计理念是“一次编写,到处运行”。 【音乐播放器核心功能】 1. **媒体库管理*...

    15款小应用源码

    在Android开发领域,源码是学习和提升技术的重要资源。以下是一些从提供的链接中提炼出的Android应用源码及其涉及的关键知识点: 1. **高仿点心桌面皮肤源码**:这是一款模仿知名桌面应用“点心桌面”的皮肤设计,...

Global site tag (gtag.js) - Google Analytics