在本应用程序中需要使用到的具体信息如下表所示,其中,表4.4为Media类字段,表4.5为Thumbnails类字段。
表4.4 Media(Image)中字段
字段名 类型 描述
BUCKET_DISPLAY_NAME TEXT 所在文件夹名
BUCKET_ID TEXT 所在文件夹ID
DATE_TAKEN INTEGER 拍摄时间(距1970年1月1日)
DISCRIPTION TEXT 图片的描述信息
_ID INTEGER 当前照片的ID
LATITIUDE DOUBLE 拍摄照片所在的纬度
LONGTITUDE DOUBLE 拍摄照片所在的经度
MINI_THUMB_MAGIC INTEGER 缩略图ID
CONTENT_TYPE STRING 文件格式(例:image/jpg)
ORIENTATION INTEGER 照片拍摄的角度
表4.5 Thumbnails中字段
字段名 类型 描述
DATA DATA STREAM 缩略图转成的字节流
HEIGHT INTEGER 缩略图高度
WIDTH INTEGER 缩略图宽度
IMAGE_ID INTEGER 原照片ID
KIND INTEGER 缩略图种类
_ID INTEGER 缩略图的ID
5 系统实现
5.1 应用界面实现
在Android的每一个可视化界面中,都有其唯一的布局文件,用XML进行标记,包括每个Acitivity的各种布局方式、以及各种资源文件如图像、文字、形状、颜色等的引用。程序在运行时,通过代码对各个配置文件进行读取。这样就能形成各种不同的可视化界面和炫丽多彩的效果。本程序中的主要界面也是一个Activity,效果如图5.1所示。
MainActivity.java(BuncketBrowse.java/PhotoBrowse.java):
Activity启动后会自动调用onCreate()方法,作为入口函数,紧接着就会调用设置layout的XML的方法,setContentView(),这里将会res/layout/main.xml加载为主布局,代码如下:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
main.xml的布局内最外层是一个线性布局<LinearLayout>,第二个<LinearLayout>布局中是标题信息,主要内容是一个文本<TextView>和一个<Spinner>,用来表示排列顺序信息,而<GridView>即是控制网格浏览图片的内容了。同时,main.xml主要控制的是两个Activity,都是继承自MainActivity,因为他们的布局非常类似。界面图5.1所示。
图5.1 图片组浏览界面
图片浏览界面,使用的布局是res/layout/gallery.xml,外层使用了<FrameLayout>,是帧布局,控件覆盖使用;<ImageView/>是主窗口,显示图片;中间的<RelativeLayout>中包括了两个<Button>,分别是返回和详细信息按钮,以及一个<TextView>显示图片标题;下面的<RelativeLayout>标识着下方的滚动浏览图片和放大缩小按钮。界面如图5.2所示。
图5.2 图片浏览界面
图片处理界面,布局界面在res/layout/process.xml,与gallery.xml类似,下方换成了三个<Button>用来控制具体修改的属性、参数值等。界面如图5.3所示。
图5.3 图片修改界面
在Android的布局中,通常的布局方式主要是在XML中设置属性来完成的。例如表5.1中的常见属性,代表了一般布局中所使用的布局方法。
表5.1 常见XML布局的属性
属性名 值 说明 基于Android系统的图片浏览器开发与设计(8):http://www.youerw.com/jisuanji/lunwen_2596.html