《嵌入式系统》课程报告。
学生姓名: 车良康
学号: 20091002977
班序号: 116092—14
指导教师: 徐战亚
中国地质大学(武汉)信息工程学院。
2011 年 10 月。
题目:仿picasa**浏览系统。
1、引言。1.1、项目背景。
picasa是一款可帮助您在计算机上立即找到、修改和共享所有**的软件。每次打开picasa时,它都会自动查找所有**(甚至是那些用户已经遗忘的**),并将它们按日期顺序放在可见的相册中,同时以用户易于识别的名称命名文件夹。用户可以通过拖放操作来排列相册,还可以添加标签来创建新组。
picasa 保证用户的**从始至终都井井有条。picasa还可以通过简单的单次点击式修正来进行高级修改,让用户只需动动指尖即可获得震撼效果。而且,picasa还可让用户迅速实现**共享——可以通过电子邮件发送**、在家打印**、制作礼品cd,甚至将**张贴到用户自己的blog中。
本系统将仿照picasa的部分功能,如picasa的缩略图浏览方式、单个**的浏览方式、幻灯片式的****等。本系统同时添加有一些独有的功能和浏览方式。
1.2、编写目的。
本文档将对本系统的详细设计方案,本系统的完成程度,以及开发人员的心得等做详尽的描述。本文档用于,让未参与开发的人员快速了解系统细节和设计思路,并对系统的改进和维护作出宝贵建议。
1.3、设计依据。
本文档将依照标准《概要设计说明书》与《模块设计说明书》的规范进行编写。
2、总体设计。
2.1系统设计原则。
仿picasa**浏览系统主要需要遵循以下几个原则:
实用性原则:这是所有应用软件最基本的原则。直接衡量系统的成败,每一个提交到用户手中的系统都应该是实用的,能解决用户的实际问题,否则该设计就是垃圾。
本系统必须可以使用户能够感到系统的可用性。
标准化原则:本系统必须按照标准化的方法进行开发与设计。为了可以与其他系统兼容,本系统必须使用标准化的接口与格式。
可靠性原则:这也是所有应用软件最基本的原则,不可靠的系统是无法提供给用户使用的。本系统必须是可靠的。
在用户做出一些不正确或非法操作时,本系统必须阻止此操作并给与提示。同时,本系统必须拥有较好的容错性,在出现一般错误的情况下,不至于导致系统崩溃。并且,在错误出现之后,可以很快的恢复到正常状态,记录下错误原因。
高效性原则:本系统必须是高效的。在用户访问了大型数据时,也能保持一定的效率和稳定性。当**分辨率过高或文件过大时,仍可以有效的、快速的响应用户的需求。
适用性和扩展性原则:本系统必须具有一定的适用性,可以适用于大多数的操作系统。同时,本系统必须具备一定的可扩展性。
利用可扩展的设计方案,使得本系统可以随时比较容易的扩充其功能,实现快速的再次开发。
安全性原则:本系统必须具有一定安全性。这里指的是在一定范围类安全,而不是绝对的安全。
2.2、设计中应用的关键技术。
本系统使用j**a编写,并使用sun公司提供的各种api和jdk类库。使用awt包中的组件,可以很容易的开发桌面可视化程序。本系统使用了多线程编程,用以**的特效显示。
2.3、总体结构。
2.3.1、界面结构。
2.3.2、功能结构。
3、界面设计。
界面分为三个部分:启动界面、主界面、浏览界面。
3.1、启动界面。
启动界面比较简洁,仅有一张**显示。**将把本系统的logo以及主要风格第一时间内呈现出来。启**片内容与google的picasa系统类似。
3.2、主界面。
主界面将模拟google的picasa系统,主要布局方式与其十分相似。主界面包括有菜单栏、工具栏、文件夹框、略缩图框、状态栏这5个部分组成。
菜单栏】位置:位于最顶部。
尺寸:由jvm自己控制。
工具栏】位置:位于菜单栏的下面。
尺寸:宽度与主框体相等,高度为50px。
文件夹框】位置:位于主框体左侧。左上角坐标为(10,60)。
尺寸:宽度为200px,高度为主框体高度减去150px。
略缩图框】位置:位于主框体右侧。左上角坐标为(220,60)。
尺寸:宽度为主框体宽度减去250px,高度为主框体高度减去150px。
状态栏】位置:位于最下侧。
尺寸:宽度为与主框体相等,高度为30px。
3.3、单图浏览界面。
浏览界面主要用于浏览单个**。界面仅由**浏览框和工具栏组成。
**浏览框】位于中心。
工具栏】位于最下侧,高度为40px。
3.4、自动**界面。
自动**界面将以全屏显示。
3.5、单图浏览幻灯片界面。
单图浏览幻灯片界面将以全屏显示。
4、系统功能设计说明。
4.1、启动界面功能模块。
启动界面没有可使用的功能。仅在系统启动的时候,存在3秒左右。
实现方式:使用一个jwindows容器来显示启动画面。在jwindows容器中绘制一个启**片,然后利用计时器控制此容器显示时间。
当定时时间倒时,调用此容器的setvisible(false)方法隐藏此容器,接着调用主框架jframe的setvisible(true)方法启动主框架。
启动画面。4.2、菜单栏功能模块。
菜单栏中的主要菜单有:文件(f)、工具(t)、帮助(h)。
菜单栏。文件(f)】
文件中包括的菜单有:文件另存为(a)、文件重命名(r)、文件删除(d)、退出(x)。其中的文件另存为(a)、文件重命名(r)、文件删除(d)将使用**文件操作功能模块的对应功能(在4.
6节描述)。
退出(x):退出本系统。点击后,弹出提示框(见图)。选择是,则退出;选择否,取消本次操作。
实现方法:使用joptionpanel类来显示提示对话框。使用file类的delete方法来实现删除操作。
退出提示对话框。
工具(t)】
工具中包括菜单有:设置(s)。
设置(s):点击后,将弹出设置对话框。
在设置对话框中,允许设置的项目有:略缩图的显示大小,略缩图的水平最小间隔,略缩图的垂直间隔;略缩图的缓存大小;自动**的时间间隔。
略缩图的显示大小:在略缩图的列框模式下,每个略缩图的显示尺寸。
略缩图的水平最小间隔:在略缩图的列框模式下,略缩图水平间隔由软件自动计算,但其结果不小于已设定的最小间隔。
略缩图的垂直间隔:在略缩图的列框模式下,略缩图的垂直间隔。
略缩图的缓存大小:在略缩图的浏览模式下,**在内存中的缓存尺寸。(过大将占用大量内存,过小将使**不清晰)
自动**的时间间隔:自动**功能下,每**一张**的间隔时间。
实现方法:继承jdialog类来设计一个设置对话框。其中包括jlabel、jtextfield、jbutton等组件。
帮助(h)】
帮助中包括菜单有:关于(a)。
关于(a):点击后,弹出关于对话框。在关于对话框中,最开头是本软件的logo;接下来是关于本软件的关于说明;最后是确定按钮。
关于对话框。
4.3、文件夹选择功能模块。
文件夹框的主要功能是提供一个可以选定本地文件夹的树结构视图。此视图以“我的电脑”为根,以树结构遍历本地的每一个文件夹。此视图只显示文件夹,而被选中的文件夹路径将发送至**读取线程,进行**读取。
实现方法:使用jtree类来构建树形视图,并将其放入jscrollpanel容器中,以实现活动条效果。文件夹遍历算法采用csdn上**的一个源码。整体效果如下图:
整体效果:根目录:
展开文件夹效果:
点中文件夹效果:
4.4、略缩图显示功能模块。
缩略图框的主要功能是提供**的选择与初步浏览。此视框拥有两种不同的显示模式:一种是缩略图列框模式,另一种是缩略图浏览模式。两种模式的切换可以使用工具栏的模式切换按钮。
4.4.1、缩略图列框模式。
此模式下,**的缩略图以阵列的形式展现出来。缩略图的尺寸都比较的小,以便可以容下大量的缩略图。缩略图的大小可以在设置中进行调整。大体效果见下图:
大体效果图。
缩略图的排列方式不定,并保持**的原始比例。当改变主框体大小的时候,缩略图将重新算计位置和间隔,使用平均计算的方式使得摆放的位置自然均匀。从而产生拉动主框体,**跟随调整位置的效果。
其效果和google的picasa系统类似。为每个**绘制较细的灰色边框,并绘制阴影效果,使得**更有立体感。
当用户用鼠标单击某一**时,此**将被选中,并用粗蓝矩形标出(见图)。此时,可以对此**进行菜单栏中的另存为、重命名以及删除操作。
选中**以蓝色框标出。
当用户用鼠标双击某一**时,将进入浏览界面。用户可以通过浏览界面,认真、仔细的观赏此**。
实现方法:所有缩略图都显示在jpanel面板中。通过重载jpanel类的paint(graphics g)方法,可以对面板进行自由绘制。
使用方法来绘制略缩图,而缩略图的缓存数据存放在bufferedimage对象中。所有的bufferedimage对象使用一个linkedlist链表来管理,以达到易于存取。
4.4.2、略缩图浏览模式。
此模式下,**的缩略图以类型于**影片的方式展现。缩略图的尺寸比较大,以便使用户看得更清楚。
大体效果图。
每次有三张**显示出来,正中心的**为当前**,在最前方;左边的**为上一张**,在后方;右边的**为下一张**,在后方。三张**的比例不变,仅在必要时做适度放缩。
当点击当前**时,将进入浏览界面。当点击上一张或下一张**时,三张**将发生移动和渐变,直到点击的那张**到达当前**的位置,同时左右**也发生变化。变化时拥有半透明特效。
特效变化过程。
实现方法:重载jpanel类的paint(graphics g)方法,获取面板的自由绘制权利。通过开启一个时间线程来控制每个**在某一时刻的位置、尺寸以及透明度。
快速**每一帧的图像,则会形成动画效果。
4.5、单图浏览功能模块。
4.5.1、单图浏览界面。
单图浏览框的主要功能是浏览单个**,整个框将放置一张**。若**尺寸小于框体的尺寸,则显示**原始尺寸。若**尺寸大于框体尺寸,则按原始比例略缩到框体放得下的尺寸。
高度被限制的情况。
高度被限制的情况。
**较小情况。
4.5.2、单图浏览(幻灯片)
单图浏览幻灯片是模仿picasa的单图浏览方式。当点击单图幻灯片后,背景桌面将成暗黑色,**就由小变大的出现在界面中。最终,如果**足够大,就占满整个屏幕,如果**较小,就按实际大小显示在中心位置。
**可以使用鼠标任意拖动,也可以利用鼠标滑轮改变**大小。
嵌入式系统报告
北京联合大学信息学院。嵌入式系统应用课程设计 实验报告。题目 基于arm9的电子时钟设计。时间2013.11.26 一 课程设计评分表1 二 设计任务书2 三 概要设计2 四 详细设计3 五 调试过程及结果分析10 六 设计 调试中的体会及建议13 七 参考文献13 课程设计评分表。基于arm9的电...
嵌入式系统报告
浙江理工大学。rm嵌入式系统技术及应用 课程报告。题目 基于stm32的呼吸灯设计。专业 电气工程及其自动化。班级 10电气工程及其自动化1班。姓名 杨家卫。学号 b103828 指导老师 顾敏明。本次设计基于对这一学期相关内容知识的整合,将相关知识应用在野火开发板上,实现设计目标的过程。stm32...
嵌入式系统报告
目录。一背景介绍 1 二系统总体设计 1 2.1 博创netarm2410 s开发平台 1 2.2 硬件体系结构 2 2.2 软件体系结构 2 三系统具体设计 3 四系统调试结果 3 五个人具体工作 4 5.1 本机qtopia虚拟平台的建立 5 5.2 qt交叉编译环境的建立与开发板库文件的加载 ...