智能手机是指“像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称”。现在,多媒体己经成为智能手机设备的一个非常重要的组成部分,而图片浏览就是其中一个重要的应用。尽管智能手机的操作系统本身提供了图片浏览功能,但功能有限,操作界面也不够友好,进而影响了浏览效率。
2.2 调研情况
以往的手机图片浏览器,通常是使用键盘键,即上下左右按钮实现不同图片的切换,操作上很不友好。现如今移动通信技术日新月异,各类触屏手机层数不穷,用户需求渐渐变高,以往的操作方式已经不能满足用户对应用的要求。不仅仅在实用性上,还包括简单、快捷、人性化的操作。
2.2.1 图片的读取和显示
智能手机一般不配备固态硬盘,但可以通过本身自带的flash闪存卡和外置扩展卡来存储文件。现在智能手机CPU主频已经达到GHz至少128M内存,高分辨率显示屏,使得高分辨率的图片能在智能手机上流畅显示。
由于WINCE本身支持的图片格式是有限的。为了能支持流行的BMP、EG、GIF、PNG、TIFF、PCX等图片格式,本浏览器显示图片采用了开源的CxImage库。CxImage类库是一个优秀的图像操作类库,它可以快捷地存取、显示、转换各种图像。但是开源的CxImage类库不支持WINCE6.0平台,需要进行移植。
从磁盘中读取各种格式的图片调用CXImage::Load函数,并根据图片的分辨率以适合屏幕大小居中显示。为了在图片的移动和缩放时防止屏幕闪烁,采用内存DC双缓冲技术。即通过CXImage::Stretch函数将缩放好的图片放到内存DC中,再放到屏幕DC中使用BitBlt函数显示出来。
2.2.2 缩略图显示
智能手机要求界面豪华,操作简单直观,缩略图的功能就是它的一个亮点。图片浏览器在选择了某个文件夹后,自动识别图片格式的文件,并将系统支持格式的图片一一以缩略图的形式显示出来。缩略图并不是单纯的按比例缩小,缩小比例是根据图片本身尺寸和规定大小来确定的,这样可以防止缩略图在显示的时候失真。
鉴于智能手机的处理能力,当一个文件夹中有几十甚至上百张图片时,直接生成缩略图显示需要很长的时间,这样给用户造成了很大的不便。通过测试,读一个1024×768的G图片需要大约500ms,而一个40×40的G图片只需要几毫秒。这样在文件夹列表中设计一个刷新功能,将文件夹里面能识别的图片在存储到手机FLASH卡时生成适合大小的缩略图并保持在当前目录的子目录下。当进入缩略图界面时,读取这个子目录下保存的缩略图文件,这样可以明显提高缩略图显示的速度,使缩略图界面平滑和人性化。当一个文件夹中的图片超过200张时,开辟一个辅助线程读图,而主线程负责缩略图界面的显示。
2.2.3 图片缩放
设计的智能手机屏幕为电容屏,所以图片缩放和漫游支持手势。打开图片在屏幕上显示是按照适合屏幕大小比例缩放显示的,则只有放大的尺寸超过屏幕大小才能漫游。
图片是响应手势按照屏幕中心位置缩放,利用前面提到的CXImage::Stretch函数可以很轻松的实现图片的缩放,只需要确定缩放后图片的高度和宽度。
3 开发环境概述
3.1 Android开发环境介绍
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。 Android智能手机图片浏览器的开发(3):http://www.youerw.com/jisuanji/lunwen_17687.html