版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1Android的布局格式5.1.1FrameLayoutFrameLayout是最简单的布局格式,它可以放置任意多个控件,控件将被罗列在屏幕的左上角。当存在多个控件的情况下,控件将被罗列排放。下面以一个简单的例子来展示FrameLayout的显示效果,FrameLayout中包含了一个图片ImageView和一段文本TextView,完整代码如下:下一页返回5.1Android的布局格式编辑完成,可以运行查看显示效果,如图5.1所示。可以明显的看到两个视图重叠到了一起,因此这种布局很少用到。5.1.2LinearLayout下面的xml文件中包含了一个按钮(Button、两个文本显示框(Text-View)和两个文本编辑框(EditText)。其代码如下:上一页下一页返回5.1Android的布局格式运行后的效果如图5.2所示。可以看到,尽管在LinerLayout中添加了这么多个控件,它们仍然显示在一行。如果将android;orientation="horizontal”改为android:orientation="vertical",所有的控件的显示将会在垂直方向排成一列,其效果如图5.3所示。上一页下一页返回5.1Android的布局格式下面尝试把水平和竖直的线性布局合在一个x耐的代码中。代码包含了三个LinearLayout,其中一个大的LinearLayoul中包含了两个小的LinearLayout,大的LinearLayoul的属性设置为垂直,而小的LinearLayout的属性设置为水平。完整的代码如下:上一页下一页返回5.1Android的布局格式可以看到程序效果如图5.4所示。界面整体上是垂直分布的,在下面的两组文本显示框和文本编辑框是水平分布的。由此可以看到一个看似简单的LinearLayout经过嵌套的使用可以排出相当复杂的界面,因此在实际应用中大多数选择它来进行布局。上一页下一页返回5.1Android的布局格式5.1.3AbsoluleLayout这里仍然以一个简单的AbsoluleLayout例子来展示它的效果。本例中使用了和上一节同样的五个控件,不同的是使用AbsoluleLayout包围它们。通过调整每一个控件的绝对坐标来调整位置。其完整代码如下:上一页下一页返回5.1Android的布局格式运行的效果如图5.5所示。5.1.4RelaliveLayout4RelaliveLayout允许子元素指定它们相对于其他元素或父元素的位置(通过ID指定)。因此,可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其他元素将以屏幕中央的相对位置来排列。这个是相对于AbsoluleLayout的,采用的是相对坐标,所以在实际中比较常用。主要关系可以分为以下几种。相对于容器的位置关系:android:layout_alignParentBottom—将元件的底部放在容器的底部。上一页下一页返回5.1Android的布局格式android:layout_alignParentLeft—将元件的左边放在容器的左边。android:layout_alignParentRight—将元件的右边放在容器的右边。android:layout_alignParentTop——将元件放在容器的顶部。android:layout_centerHorizontal—将元件放置在容器水平中心。android:layout_centerInParent——将元件放置容器的中心。android:layout_centerVertical———将元件放置容器的竖直中心。相对于其他元件的位置关系:android:layout_above——放置在特定元件的上部。android:layout_below——放置在特定元件的下部。android:layout_toLeftOf——放置在特定元件的左侧。上一页下一页返回5.1Android的布局格式Android:layout_toRightOf——放置在特定元件的右侧。和其他元件对齐:android:layout_alignBaseline—新元件与特定元件的基准线对齐。android:layout_alignBottom—新元件和特定元件的底对齐。android:layout_alignLeft——新元件和特定元件的左对齐。
android:layout_alignRight—新元件和特定元件的右对齐。android:layout_alignTop——新元件和特定元件的顶对齐。上一页下一页返回5.1Android的布局格式下面是一个简单的RelaliveLayout例子,通过这个例子来学习如何使用RelaliveLayout并验证RelaliveLayoutl的显示效果。本例中仍然使用5.1.2中使用的五个控件,不同于上面两小节使用LinearLayout和AbsoluleLayout来包围这些控件,此处使用RelaliveLayout来完成同样的效果。其完整代码如下:上一页下一页返回5.1Android的布局格式运行程序并查看运行结果,如图5.6所示。和上面使用三个LinearLayout的例子的效果基本相同。5.1.5TableLayout下面这个例子将要展示TableLayout和TableRow的使用。其代码如下:其运行效果如图5.7所示。上一页返回5.2Android界面控件5.2.1button按钮在main.xml文件里建立一个id为ClickButton的按钮和showTextView不可编辑的文本框,代码如下:下一页返回5.2Android界面控件先绑定R.layout.main.然后用findViewById的方法创建了一个press按钮并用setOnClickLislene:的方法对其监听。使用了匿名内部类对OnClickLislene:接口新建了一个对象并做出了具体的实现。设置当前的Activity的TextView中显示的内容为“Hi,按钮测试!”。其运行效果如图5.8所示。上一页下一页返回5.2Android界面控件5.2.2带图片的按钮图片按钮ImageButton可以把一张图片设为一个按钮,代替Button组件功能,以增加程序美感,图片按钮的使用和普通按钮很相似,首先要在main.xml中添加图片按钮。上一页下一页返回5.2Android界面控件其中,代码:android:
src="@drawable/androidim“用来指出图片资源所在的位置。完成后就可以在包含Activity的Java程序中进行调用,调用方法和普通按钮一样。其完整代码如下:当按钮被按下后,显示效果如图5.9所示。上一页下一页返回5.2Android界面控件另外,还可以自定义图片按钮,实现一些想要的显示效果。例如,要实现在按下和焦点停留时按钮显示不同的图片,需要在res/drawable目录下建立一个androidbutton.xml文件,其内容如下:上一页下一页返回5.2Android界面控件在默认情况下按下状态(statepressed)和焦点停留statefocused)都是false,因此首先将状态改为true。然后对应于不同的状态选择相应的图片。然后修改main.xml如下:上一页下一页返回5.2Android界面控件5.2.3TextView标签(不可编辑的文本框)TextView是Android中常用的组件之一,可以用它来显示文字,就像一个标签一样,或者可以认为是html中的span。对于TextView主要是怎么设置显示的文本,怎样设置字体的大小,字体的颜色,字体的样式。其实很简单,TextView中提供了大量的属性用来配置TextView。下面是其具体属性:android:antoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值为none/web/etnail/phone/snap/all.android:autoTexl如果设置,将自动执行输人值的拼写纠正。此处无效果,在显示输人法并输人的时候起作用。上一页下一页返回5.2Android界面控件android;bufferType指定getText()方式取得的文本类别。选项editable类似于SlringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容。spannable则可在给定的字符区域使用样式。android:capitalize设置英文字母大写类型。此处无效果,需要弹出输人法才能看得到,参见EditView此属性说明。android:cursorVisible没定光标为显示/隐藏,默认显示。android:digits设置允许输人哪些字符。如“1234567890.+一*/%()”android:drawableBottotn在Text的下方输出一个drawable,如图片。如果指定一个颜色的活会把text的背景设为该颜色,并且text同时和background使用该颜色时覆盖后者。上一页下一页返回5.2Android界面控件android:drawableLeft在text的左边输出一个drawable,如图片。android:drawablePadding设置text与,drawable(图片)的间隔,与drawableLeft,drawableRight,drawableTop,drawableBottlotn一起使用,可设置为负数,单独使用没有效果。drawableLeft、android:drawableRight在text的右边输出一个,drawable.android:drawableTop在text的正上方输出一个,drawable.android:editable设置是否可编辑。android:editorExtras设置文本的额外的输人数据.上一页下一页返回5.2Android界面控件android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:"start"—省略号显示在开头;"end"—省略号显示在结尾;"middle"—省略号显示在中间;"tnasquee"—以跑马灯的方式显示(动画横向移动)。android:fieezesTexl设置保存文本的内容以及光标的位置。android:gravity设置文本位置,如设置成“center",文本将居中显示。android:hinlText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EdilView中使用,但是这里也可以用。上一页下一页返回5.2Android界面控件android:imeoptions附加功能,设置右下角IME动作与编辑框相关的动作,如设置actionDone右下角将显示一个“完成”,而不设置时默认是一个回车符号。这个在EditView中再详细说明,此处无用。android:itneAclionId设置IME动作ID。android:itneActionLabel设置IME动作标签。android:includeFonlPadding设置文本是否包含顶部和底部额外空白,默认为true.android:inputMethod为文本指定输人法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。上一页下一页返回5.2Android界面控件android:inpultype设置文本的类型,用于帮助输人法显示合适的键盘类型。在EditView中再详细说明,这里无效果。android:linksClickable设置链接是否为点击连接(即使设置了autoLink).android:marqueeRepealLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为nlarqlleeforever时表示无限次。android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度。android:maxEms设置TextView的宽度最长为N个字符的宽度。与ems同时使用时覆盖ems选项。上一页下一页返回5.2Android界面控件android:maxLength限制显示的文本长度,超出部分不显示。android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。android:maxLines设置文本的最大显示行数,与width或者layoutwidth结合使用,超出部分自动换行,超出行数将不显示。android:tminLines设置文本的最小显示行数,与lines类似。android:lineSpacingExtra设置行间距。android:lineSpacingMultiplier设置行I司距的倍数,如“1.2".android:numeric如果被设置,该TextView有一个数字输人法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EditView将详细说明。上一页下一页返回5.2Android界面控件android:password以小点“.”显示文本。android:phoneNumber设置为电话号码的输人方式。android:privateImeoptions设置输人法选项,此处无用,在EditText将进一步讨沦。android:scrollHorizontally设置文本超出TPXLVIPW的宽度的情况下,是否出现横拉条。android:seleclAllOnFocus如果文本是可选择的,让它获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TPXLVIPW中设置后无效果。上一页下一页返回5.2Android界面控件android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。android:shadowDx设置阴影横向坐标开始位置。android:shadowDy设置阴影纵向坐标开始位置。android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。android:singleLine设置单行显示。如果和layoutwidth一起使用,当文本不能全部显示时,后面用“…”来表示。android:singleLine=“true”android:layoutwidth="20dp”将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行.上一页下一页返回5.2Android界面控件android:lexl设置显示文本,如android:Text="test_singleLine".android:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,若没有则使用默认的外观。可设置的值如下textAppearanceButton/textAppearanceInvers/textAppearanceLarge/textAppearanceInVerse/textAppearanceMedium/textAppearanceMedi-umInverse/textAppearanceSmall/textAppearanceStnallInverse。android:textColor设置文本颜色android:textColorHighlight被选中文字的底色,默认为蓝色。上一页下一页返回5.2Android界面控件android:textColorHint设置提示信息文字的颜色,默认为灰色。与hint一起使用。android:textColorLink文字链接的颜色。android:textScaleX设置文字之间间隔,默认为1.0fandroid:textSize设置文字大小,推荐度量单位"Sp",如“15sp"。android:textStyle设置字形[bold(粗体)0,italic(斜体)1,boldilalic(粗斜)2],可以设置一个或多个,用“|”隔开。android:typeface设置文本字体,必须是以下常量值之一:normal0,sans1,serif2,monospace(等宽字体)3.上一页下一页返回5.2Android界面控件android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)。android:maxHeight设置文本区域的最大高度。android:minHeight设置文本区域的最小高度。androidwidth设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layoutwidlh的区别在此。android:max}X%idth设置文本区域的最大宽度。android:minWidth设置文本区域的最小宽度上一页下一页返回5.2Android界面控件在这里将通过修改main.xml来改变TextView的属性,对于main.xml的修改如下:上一页下一页返回<TextViewandroid:id="@+id/show_TextView"android:layout_width="fiil_parent"android:layout_height="wrap_content"android:textColor="#ff0000"android:textSize="24sp"android:textStyle="bold"android:text="@string/hello"/>5.2Android界面控件这里增加了三个属性的设置,分别是androidlexlColor="#ff0000"设置字体为红色,android:textSize="24sp"X置字体为24sp,android;textSize="bold"设置字体加粗,预览效果如图5.10所示:如果不使用xml文件进行修改,也可以使用java代码实现,其代码修改如下:上一页下一页返回TextViewtextView=(TextView)findViewByld(R.id.text_view);textView,setTextColor(Color,RED):textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,24f);text“View.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD);5.2Android界面控件5.2.4EditText文本框(可编辑的)
EdilTexl和ViewText的属性有很多一致的地方,这里就不做赘述了,通常使用EditTexl来作为密码输人方式,但是由于布局文件中把EditText的显示方式设置成android:password=“true”这样所有输人字符将变成●●●●●●的形式显示。后面将同Checkbox一起给出一个例子。上一页下一页返回5.2Android界面控件5.2.5CheckBox多选框CheckBox也是一种频繁使用的控件,可以一次选择一个或者多个选项,CheckBox可以通过setOnCheckedChangeLislener给CheckBox添加事件监听器,onCheckcdChanged中的isChecked值来判断CheckBox是否被选中,下面还是通过一个例子来了解它的使用,和上面的例子一样,例子的主要作用为通过CheckBox来决定EditView是否显示密码,首先通过修改main.xml来设计一系统的显示,代码如下:上一页下一页返回5.2Android界面控件上一页下一页返回5.2Android界面控件其对应的Java的代码如下:上一页下一页返回5.2Android界面控件其运行效果如图5.11和图5.12所示:5.2.6RadioGroup单选可以将各自不同的RadioButton,设置于同一个Radio按钮组,同一个RadioGroup组里的按钮,只能做出单一选择(单选题)。有它自己的ID,里面包含多个RadioButton,每一个都有自己的ID,选中事件也是isChecked。在这里通过一个例子来学习它的使用,其main.xml文件如下所示:上一页下一页返回5.2Android界面控件上一页下一页返回5.2Android界面控件最后是主控制程序HelloWorld.java,其代码如下:上一页下一页返回5.2Android界面控件其运行效果如图5.13和图5.14所示:5.2.7Spinner下拉列表下拉列表是要有内容的,这个组件的实现方式相对麻烦一些。有两种实现的方式。·先定义几个字符串存在数组里,如下代码所示:最后用sproner对象的setAdapter方法添加内容。上一页下一页返回5.2Android界面控件另外,还可以在xml文件里预先定义数据:上一页下一页返回5.2Android界面控件在res/values目录下建立array.xml的文件然后通过R.array.countries找到。最后,将给出一个例子,在这里将使用第一种方法给出本例子。main.xml的代码如下:上一页下一页返回5.2Android界面控件包含Activity的HelloWorld.java程序如下:上一页下一页返回5.2Android界面控件程序效果图如图5.15所示。5.2.8AutoCompteteTextView自动完成文本AutoCompteteTextView可以像Google搜索一样,当在搜索框里输人一些字符时(至少两个字符),会自动弹出一个下拉框提示类似的结果,极大地提高用户体验。下面我们来一步一步实现这个效果,先是布局xml,main.xml内容如下:上一页下一页返回5.2Android界面控件Java程序如下所示:上一页下一页返回5.2Android界面控件最后的运行效果图如图5.16所示:5.2.9DatePicker日期选择器DatePicke:可以让用户选择时间,免去判断输人时间合法性,因为这里月份用0一11表示,没有12的,不设置默认显示系统口期,为了正确计算月份,应在getMonth月份后加to下面是一个使用DatePicker的例子。其main.xml的代码如下:上一页下一页返回5.2Android界面控件Java程序为:上一页下一页返回5.2Android界面控件运行效果如图5.17所示:5.2.10ScrollView滚动视图ScrollView滚动视图是指当拥有很多内容,一屏显示不完时,需要通过滚动条来显示的视图,实现时可以可以在xml文件布局容器外面加上ScrollView.用这个组件把它包起来,这样就OK了。上一页下一页返回ScroUViewxmlns:android="http;//schemas.android.com/5apk/res7android"android;layout_width="fiil_parent"android;layout_height="wrap_content">5.2Android界面控件main.xml代码如下:上一页下一页返回5.2Android界面控件Java程序代码如下:上一页下一页返回5.2Android界面控件运行效果如图5.18所示:5.2.11ProgressBar进度条在某项延续性工作的进展过程中,需要有进度条(ProgressBar)来表示此过程正在进行中。在Android中有圆形和长条状的进度条,下面还是通过例子来讲解进度条的使用。上一页下一页返回5.2Android界面控件main.xml如下:上一页下一页返回5.2Android界面控件其Java主程序代码如下:上一页下一页返回5.2Android界面控件程序效果如图5.19所示:5.2.12SeekBar拖动条Android系统中的拖动进度条定义在数据包android.widgetSeekBar中,继承自android.widget.AbsSeekBar(android.widget.ProgressBas)。拖动条的常用属性设置如表5.1所示:上一页下一页返回5.2Android界面控件拖动进度条类中有一个卜分重要的方法setOnSeekBarChangeLislener(SeekBar.OnSeekBarChangeLislener),该方法可进行监听,开始拖拽,停止拖拽,以及拖拽中进度条的值是否是用户改变等参数。下面是一个典型的拖动进度条例子。其main.xml代码如下:上一页下一页返回5.2Android界面控件Java主程序代码:上一页下一页返回5.2Android界面控件5.2.13ImageView图片视图要将一张图片显示在屏幕上,首先需要创建一个显示图片的对象,在Android中,这个对象是ImageView对象,然后通过setImageResource方法来设置要显示的图片资源索引。首先选择一个图片放在res\drawable\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市复旦大学智能医学研究院招聘周欣课题组行政助理岗位备考题库含答案详解
- 高速公路桥下穿电缆专项施工方案
- 《人格心理学》习题试卷及答案
- 2025年淮安清江浦辅警招聘真题及答案
- 2026洲际酒店集团(中国)秋招笔试题及答案
- 管理基础知识试题及答案
- 2026中国航空工业集团校招面笔试题及答案
- 2026中国东风校招面试题及答案
- 2026中国电子科技集团校招面笔试题及答案
- 2026中国储备粮集团校招面试题及答案
- 初中物理一等奖教学案例 大气的压强获奖教学案例分析
- NB/T 11257-2023井工煤矿采掘工作面防治水安全条件评价
- 数字经济概论-完整全套教学课件
- 苏教版高中数学公式知识点汇总
- 代理诉讼赡养费授权委托书
- 现金盘点表完整版
- 《呼兰河传》读书交流课件
- 复旦大学体育理论考试题库-基础题
- 体外放射分析-2 RIA与IRMA教材课件
- 节后复工安全教育培训 节后安全教育内容
- 孕前优生健康检查
评论
0/150
提交评论