智能终端软件设计及开发实验二_第1页
智能终端软件设计及开发实验二_第2页
智能终端软件设计及开发实验二_第3页
智能终端软件设计及开发实验二_第4页
智能终端软件设计及开发实验二_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、昆明理工大学信息工程与自动化学院学生实验报告(20132014 学年第1学期)-17-课程名称:智能终端软件设计及开发开课实验室:信自楼444机房2013年11月4日年级、专业、班计科101学号201010803116姓名李力成绩实验项目名称An droid用户界面设计与开发指导教师游进国该同学是否了解实验原理:A. 了解B.基本了解口C.不了解该同学的实验能力:A.强 B.中等C.差该同学的实验是否达到要求:A.达到B.基本达到口C.未达到实验报告是否规范:A.规范B.基本规范口C.不规范实验过程是否详细记录:A.详细B. 一般C.没有教师签名:一、上机目的及内容1.上机内容An droid

2、用户界面设计与开发。请参考下图中界面控件的摆放位置,分别使用线性布局、相对布局和绝对布局实现用户界面,对比各种布局实现的复杂程度和对不同屏幕尺寸的适应能力。然后选择一种布局方式,在程序中添加 个按钮的事件处理函数,使用LogCat将捕获的按钮事件显示在Eclipse的控制台中。姓名:jimmy年龄:8身高:添力1】数全部显清除显全部删1示示除2.上机目的用户界面;(1)学习并熟悉An droid(2)能够基于An droid平台初步进行用户界面设计与开发。、实验原理及基本技术路线图(方框原理图或程序流程图)2.12.2分别使用线性布局、相对布局和绝对布局实现用户界面进行界面布局;2.3选择一种

3、布局方式,在程序中添加 4 个按钮的事件处理函数, 使用 LogCat 将捕获的按钮事件显示在 Eclipse 的控制台中。2.4 线性布局Android 开发者使用得最多的布局类型之一,开发者用它来组织你们的用 户界面上的控件。线性布局的作用就像它的名字一样:它将控件组织在一个垂直或水平的形式。当布局 方向设置为垂直时,它里面的所有子控件被组织在同一列中;当布局方向设置为水平时,所有子控件被 组织在一行中。(1)线性布局的重要特性和属性方向属性(必须),取值可以是 vertical 或horizontal(类:LinearLayout )对齐属性(可选),控制子控件在线性布局中如何排列和显示

4、(类:LinearLayout ) layout_weight 属性(可选,应用到每个子控件)指定每个子控件在父级线性布局中的相对重要 性(类: LinearLayout.LayoutParams )此外,通用的 ViewGroup-style 属性也应用到线性布局。这些属性包括:通用布局参数如 layout_height边距布局参数如 margin_top ,MarginLayoutParams)布局参数如 layout_height 和(2)给子控件赋权线性布局是最简单,(必须)和 layout_width (必须)(类:ViewGroup.LayoutParams)margin_left

5、 , margin_right 和 margin_bottom ( 类: ViewGroup.layout_width ( 类: ViewGroup.LayoutParams)绝大部分线性布局的属性都是自明性的。 然而 layout_weight 属性需要一些额外的讨论。 与其它线 性布局属性不同,其它属性应用在线性布局视图本身,而这个属性是应用在它的子控件上的。权值本身 应该是一个数字 (比如 0.5, 0.25, 0.10, 0.10, 0.05 ) ,如果你把所有子控件的权值加起来等于 1 ( 100%) 。子控件的权值控件它在父线性布局中有多“重要”或者留给其多少“空间”。这一点最好通

6、过例子来说明。让我们回到我们前面用的彩虹线性布局。为了允许所有子控件相同地“拉伸”填充线性布局, 不管屏幕的大小, 我们使用 layout_weight 来对每个 TextView 赋予相对权值。 因为有 7 种我们想赋相同 权值的颜色,我们将 1除以 7大约得到 0.143. 然而,既然我们想要权值之和最后为1,因此 5 个控件权值设为 0.14 ,另外两个为 0.15 一个微小的区别使得总和刚刚好为1,但是这对于第一个和最后一个控件来说还是很明显的。当屏幕上有足够空间来正确的展示所有控件的时候, 这个权值技巧很有效。 那就是说, 当空间很紧 的时候, 权值属性可能会被其它因素覆盖, 比如视

7、图裁剪或者在 TextView 下试图不环绕文本。 当我们改 变 rainbow.xml 布局文件以包含相似水平布局( layout_height 还是设置为 fill_parent )的时候,这 变得很明显。Android 程序用户界面使用布局来定义,而线性布局是最基本的布局类型之一。线性布局允许子控 子控件的位置可以使用对齐和权值属性进一步设置。件被组织在一行或一行(水平)或一列(竖直)上。2.5 相对布局除了将控件显示在一行或一列的线性布局,局类型。 和其它布局很相似, 相对布局可以通过相对布局也是 Android 用户界面设计使用得很普遍的布XML布局资源来定义也可以用Java程序来定

8、义。相对布使用 Eclipse 建立一个 Android 程序;局的功能就像它的名字表达的一样:它相对其它控件或父控件本身来组织控件。(1)相对布局的重要特性和属性用于子控件在父布局中居中的规则,包括:用于子控件在父布局中排布的规则,包括:用于子控件相对于其它子控件排布的规则,水平居中,垂直居中,或者两者皆居中。 在顶部,底部,左,右边缘放置。 包括:在另一个控件顶,底,左,右边缘放置。 包括:在另一个控件上面,底下,左边或右边放置。同样的,通用的 ViewGroup-style 属性也可以应用于相对布局。这些属性包括:通用布局参数比如 layout_height( 必须) 和 layout_

9、width( 必须 )( 类: ViewGroup.LayoutParams)边距布局参数比如 margin_top,MarginLayoutParams)布局参数比如 layout_height 和(2)相对布局使用技巧margin_left,layout_width (margin_nght 禾R margin_bottom (类:ViewGroup.类: ViewGroup.LayoutParams)用于子控件相对于其它子控件放置的规则,这里是一些使用相对布局的技巧。id 属性以使规则正确应用。如果你在布局设计中使用了循相对布局的子控件必须有唯一的 当心循环规则。 循环规则发生在两个控件

10、具有互相指向的规则时。环规则,你将会得到以下错误信息:相对布局IllegalStateException: Circular dependencies cannot exist in a RelativeLayout( 中不允许存在循环依赖 )回忆一下相对布局规则的应用被一次处理是很有用的 保持你的相对布局规则最小化。这减小了循环规则的机率并且使得你的布局更加可维护和灵活。一般地, 记住测试一下你的布局设计在横屏和竖屏模式下, 以及在不同的屏幕大小和解决方案下 是不是符合预期的。使用相对布局代替嵌套线性布局以改进程序性能和响应能力。Android 程序用户界面使用布局来定义, 相对布局是用于使

11、得程序屏幕更加灵活和强大的布局类型 之一。相对布局允许子控件相对于其它子控件和相对于父控件(边缘以及水平和垂直居中)来组织。一旦你掌握了如何使用相对布局的规则,它们可以有非常多的用处,使你能够创建复杂布局,而不需要过多 嵌套不同的布局,因此也改进了性能。2.6 绝对布局绝对布局( AbsoluteLayout )是指一个 ViewGroup 以绝对方式显示它的子视图( View )元素,即以 坐标的方式来定位在屏幕上位置。 这种布局方式很好理解, 在布局文件中编程设置 View 的坐标, 从而绝 对地定位。AbsoluteLayout 可以让子元素指定准确的 x R y 坐标值,并显示在屏幕上

12、。其中坐标 (0, 0) 为左上角, 当向下或向右移动时,坐标值将变大。 AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推 荐)。我们通常不推荐使用 AbsoluteLayout ,除非有正当理由使用它,因为它会使界面代码太过刚性, 以至于在不同的设备上可能不能很好地工作。具体实现 使用 Eclipse 创建一个名为“ 004”的 Android 工程。编写布局文件“ res/layour/main.xml ”,代码如下所示。 vTextView an droid:id=+id/txtl ntro android:text= 使用绝对布局” an droid:layou

13、t_width=fill_ paren t an droid:layout_height=wra p_content an droid:layout_x=20di p an droid:layout_y=20di p /AbsoluteLayout执行效果如图:三、所用仪器、材料(设备名称、型号、规格等或使用软件)1 台 PC 及 Eclipse 4.2、ADT 22.0 开发软件四、实验方法、步骤(或:程序代码或操作过程)1.界面布局结果如图,如下0 = Iits线性布局代码:LinearLayout xmlns:android= /apk/

14、res/androidxmlns:tools= /toolsmatch_parentmatch_parentstyle/AppBaseThemeverticalandroid:layout_width= android:layout_height= android:background= android:orientation=android:paddingBottom= android:paddingLeft= android:paddingRight= android:paddingTop= android:visibility= tool

15、s:context=dimen/activity_vertical_margindimen/activity_horizontal_margindimen/activity_horizontal_margin dimen/activity_vertical_margin visible.LineMainActivityLinearLayoutandroid:layout_width=match_parentandroid:layout_height=android:orientation=wrap_contenthorizontalandroid:visibility=EditText+id/

16、editText1android:layout_height= wrap_content android:layout_weight=android:layout_width= android:layout_height= android:orientation=match_parentwrap_contenthorizontalandroid:visibility=android:layout_height=android:layout_weight=match_parentwrap_contentLinearLayout android:layout_width= android:layo

17、ut_height=android:orientation=horizontalvisibleandroid:visibility=TextViewandroid:layout_width= android:layout_height= android:text=android:id=android:layout_height=android:layout_weight=LinearLayout android:layout_width= android:layout_height= android:orientation=match_parentwrap_contenthorizontala

18、ndroid:visibility=visibleandroid:id=android:layout_width= android:layout_height= android:text=+id/button173dpwrap_content 添加数据 /android:id=android:text=android:id=android:id=android:text=相对布局代码如下:RelativeLayout xmlns:android=/apk/res/androidxmlns:tools=http:/schemas.android.

19、com/tools android:layout_width=match_parentandroid:layout_height=fill_parent android:paddingBottom=dimen/activity_vertical_margin android:paddingLeft=dimen/activity_horizontal_margin android:paddingRight=dimen/activity_horizontal_margin android:paddingTop=dimen/activity_vertical_margin 绝对布局代码如下:Abso

20、luteLayoutandroid:layout_width=fill_parentandroid:layout_height=fill_parentxmlns:android=/apk/res/android在程序中添加 4 个按钮的事件处理函数如下:package com.example.window;import android.os.Bundle;import android.view.View;import android.widget.Button; import android.app.Activity;import androi

21、d.content.Intent;public class LineMainActivity extends Activity private Button button;private Button button1;private Button button2;private Button button3;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.relative_main); button=(Button)thi

22、s.findViewById(R.id.button2); button.setOnClickListener(new View.OnClickListener()public void onClick(View arg0) System.out.println( 添加数据 );Intent intent=new Intent(LineMainActivity.this,LineMainActivity.class); startActivity(intent);); button1=(Button)this.findViewById(R.id.button3); button1.setOnC

23、lickListener(new View.OnClickListener() public void onClick(View arg0) System.out.println( 全部显示 );Intent intent=new Intent(LineMainActivity.this,LineMainActivity.class); startActivity(intent);); button2=(Button)this.findViewById(R.id.button4); button2.setOnClickListener(new View.OnClickListener() pu

24、blic void onClick(View arg0) System.out.println( 清除显示 );Intent intent=new Intent(LineMainActivity.this,LineMainActivity.class); startActivity(intent););button3=(Button)this.findViewById(R.id.button5);button3.setOnClickListener(new View.OnClickListener() public void onClick(View arg0) System.out.prin

25、tln( 全部删除 );Intent intent=new Intent(LineMainActivity.this,LineMainActivity.class); startActivity(intent););五、实验过程原始记录 ( 测试数据、图表、计算等 )使用 LogCat 将捕获的按钮事件显示在 Eclipse 的控制台中结果截图:rotQccL299CDi. EJtaa皿 “WLHiQWSvaLet.oQT;疥加5:据76syjtKnjfrcceisActivlzyManijerStartinj activity: Itrnnt f cip-cac.txaniplthulrdow/ -LineKninActIvity 弱syitflra_pcocefl3ActivlcyMBna7*r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论