基于android平台的美食分享社区的设计与实现本科毕业设计 联系客服

发布时间 : 星期日 文章基于android平台的美食分享社区的设计与实现本科毕业设计更新完毕开始阅读534bd8d332d4b14e852458fb770bf78a65293a95

5.2. Android UI设计

5.2.1. Android 设计目标简介

总体上,我们的核心应用和系统在设计上首要专注于三个目标。当您在设计 Android 应用时,也应当考虑这些目标:

1魅力:Android 应用在多个层次上都是光鲜且具有美感的。变幻简单且快速;布局和字体清晰且有意义。应用的图标由艺术家们设计。就像一把精致的工具,您的应用应当努力结合美感、简洁以及魔幻般易用和强大的使用体验。

2简化:Android 应用容易理解且能使生活变得简单。当人们第一次使用您应用时,他们应当能直观的认识到最重要的功能。不过设计不应局限于为了首次使用。Android 应用不需要处理一些琐事,例如文件管理和同步。简单的任务不需要复杂的步骤,复杂的任务也应当符合用户的使用习惯,使各个年龄段和各种文化背景的人都能很快上手,并且不会被太多的选择和无关的闪烁所淹没。

3惊奇:Android 应用使得人们可以去尝试新鲜的事情,发挥自己的创造力。Android 的多任务、提醒和应用间的信息共享,使人们将应用融入生活中的方方面面。同时,您的应用应当体现个性,使人们可以清楚而优雅的掌控高科技。 5.2.2. Android xml 布局介绍

Android的布局文件都存在工程的根路径下的res文件夹中的layout文件在中。布局文件都是xml格式的。Android 应用在activity 初始化时读取xml布局文件信息先在界面上。 a) Android五大布局

Android对用五大布局对象,它们分别是FrameLayout(框架布局

),LinearLayout

(

线

),AbsoluteLayout(

局),RelativeLayout(相对布局),TableLayout(表格布局)。

1. FrameLayout:

FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。

2. LinearLayout

13

LinearLayout以你为它设置的垂直或水平的属性值,来排列所有的子元素。所有的子元素都被堆放在其它元素之后,因此一个垂直列表的每一行只会有一个元素,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子元素的高度加上边框高度)。LinearLayout保持子元素之间的间隔以及互相对齐(相对一个元素的右对齐、中间对齐或者左对齐)。

LinearLayout还支持为单独的子元素指定weight 。好处就是允许子元素可

以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串小对象挤成一堆的情况,而是允许他们放大填充空白。子元素指定一个weight 值,剩余的空间就会按这些子元素指定的weight 比例分配给这些子元素。默认的 weight 值为0。例如,如果有三个文本框,其中两个指定了weight 值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大。

3. AbsoluteLayout(不推荐使用,已经废弃)

AbsoluteLayout 可以让子元素指定准确的x/y坐标值,并显示在屏幕上。(0, 0)为左上角,当向下或向右移动时,坐标值将变大。AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。我们通常不推荐使用 AbsoluteLayout ,除非你有正当理由要使用它,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。

4. RelativeLayout

RelativeLayout 允许子元素指定他们相对于其它元素或父元素的位置(通过ID 指定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。如果使用XML 来指定这个 layout ,在你定义它之前,被关联的元素必须定义。

5. TableLayout

TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row (事实上,你可以定义其它的子对象,这在下面会解释到)。TableLayout 容器不会显示row 、cloumns 或cell 的边框线。每个 row 拥有0个或多个的cell ;每个cell 拥有一个View 对象。表格由列和行组成许多的单元格。表格允许单元格为空。单元格不能跨列,这与HTML 中的不一样。

b)布局相关属性介绍

14

布局属性按属性值主要可以分为一下三类: 第一类:属性值为true可false

android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中

android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 android:layout_alignParentRight 贴紧父元素的右边缘 android:layout_alignParentTop 贴紧父元素的上边缘 android:layout_alignWithParentlfMissing

如果找不到对应的兄弟元素找不到,就以父元素做参照物。

第二类:属性值必须为id的引用名

android:layout_below 在某元素的下方 android:layout_above 在某元素的上方 android:layout_toLeftOf 在某元素的左边 Android:layout_toRightOf 在某元素的右边

android:layout_alignTop 本元素的上边缘和某元素的上边缘对齐 android:layout_alignLeft 本元素的左边缘和某元素的左边缘对齐 android:layout_alignBottom 本元素的下边缘和某元素下边缘对齐 android:layout_alignRight 本元素的右边缘和某元素右边缘对齐

第三类:属性值为具体的像素值班,如30dip android:layout_marginBottom 离某元素底边缘的距离 Android:layout_marginLeft 离某元素左边缘的的距离 Android:layout_marginRight 离某元素的右边缘的距离 Android:layout_marginTop 离某元素上边缘的距离 Android:textSize 文字大小 Android:width 控件宽度 Android:height 控件高度

Android:layout_width 指定Container组件的宽度 Android:layout_height 指定Container组件的高度

15

5.2.3. 客户端UI特效设计

1)在android UI 设计中shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。

2)Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。所有的自定义动画都是以xml的形式表示,被包含在res文件夹中的anim中,此文件夹默认是没有的,需要自己手动新建。

整个应用的 activity 进入退出风格是左右滑动风格。这其中包括两种情况:

A)进入新的activity:这中情况的两中动画文件分别为anim_go_inter.xml和anim_go_exit.xml两个动画文件,其中anim_go_inter.xml文件定义了跳转到新的activity 时候此activity 进入时的动画规则,具体实现如下:

android:fromXDelta=\ android:toXDelta=\ android:duration=\ />

android:fromAlpha=\ android:toAlpha=\ android:duration=\ android:startOffset=\ />

此动画文件包括了两个同步动画第一个是平移动画,目标元素从父元素的x方向的100%移动到0%处,移动时间为500毫秒,第二个是透明都动画,目标元素由半透明至不透明,转化时间500毫秒。得到的效果就是跳转到新的activity时

16