你已经阅读过了如何在Android使用线性布局。用这些包括线性布局控件的渐进测验来测试你的新知识,并且巩固你Java编程和Android用户界面设计与开发的知识。

准备

为了准备这个测验,你希望以一个基本的Android程序开始。你只需要在Eclipse中创建一个Android程序然后编辑它的默认活动(Activity),特别是onCreate()方法,就可以测试你为本次测验写的代码了。

如果你不明白刚才说的怎么做,那我推荐你们先看一看之前的文章。从一些Android教程开始,比如Android开发简介或Android入门: Getting Started with Fortune Crunch。一旦你掌握了如何创建项目,再回来尝试这个练习。

循序渐进的测验

这是一个循序渐进地测验。它包含了许多Android开发初学者想要设计和开发程序所必须掌握的技能。通过下面的每一个步骤,难度逐渐增大,你可以巩固你的线性布局和通用的Android用户界面设计的知识。

步骤0:定义你的字符串

现在你创建了一个合适的Android项目,你需要创建一些用于你的用户界面的资源。

创建:

创建7个字符串资源,第一种都使用光谱的颜色(“Red”红,“Orange”橙,“Yellow”黄,“Green”绿,“Blue”蓝,“Indigo”青,“Violet”紫)

创建7个颜色资源,每一种都使用光谱的颜色(Red=>#f00, Orange=>#ffa500, Yellow=>#ffff00, Green=>#0f0, Blue=>#00f, Indigo=>#4b0082, Violet=>#ee82ee)

为文本颜色创建另外两个颜色资源(Black=>#000, White=>#fff)

测验1:定义你的布局资源

我们以创建一个新的叫做rainbow.xml的布局资源文件开始。在这个XML文件中,添加一个填充整个屏幕的垂直方向线性布局控件。接下来,添加7个TextView控件作为线性布局的子控件:每一个控件颜色都是一种光谱色。设置每一个TextView控件的文本为合适的颜色值字符串并且背景色设为合适的颜色。同时,设置每个控件的layout_width属性为fill_parent,layout_height属性值为wrap_content。

如果你正确地完成了这一步,你的布局应该看起来像这样:

测验2:调整你的布局

在这一步,你将关注不同的对齐属性,包括用于线性布局的这些属性。

按以下说明更新rainbow.xml布局资源文件:将TextView控件在屏幕居中,并且每个控件中的文字也居中。提示:这需要设置两个不同的XML属性,一个是线性布局的,另一个是每一个TextView控件的。

如果你正确地完成了这一步,你的布局看起来应该像这样:

测验3:修改线性布局子控件

线性布局非常灵活。如果你修改了父级线性布局中的子控件,布局就会尽可能地调整。

这里的TextView控件的文本很小并且有些难以阅读。先从修改TextView控件本身开始。按以下说明更新rainbow.xml布局资源:首先,添加一个叫做textsize的尺寸值。在这里我们设置为22dp。

现在你的布局应该像这样:

注意线性布局如何灵活地适应更大的TextView控件,但是它们没有充分利用屏幕的空间,黑色带仍然存在。

高级技巧:你可能想考虑对不同的屏幕大小创建不同尺寸的资源,文本大小22dp看起来不错,而在小屏幕上,文本大小为14dp或16dp可能更合适。

测验4:有效地使用屏幕空间

注意到那些没有使用的黑色空间了吗?在这一步,你将关注如何有效地使用整个屏幕。线性布局中的TextView控件被适当的改变大小,但是他们可以微微变大以使用未使用的黑色空间。

我们希望TextView控件扩展到所有可用的空间,不管屏幕的方向和大小是什么样的。

要实现这一点,调整线性布局中子控件的layout_weight属性以给每个控件指定的增长边界。当设备在特定方向时,layout_weight属性的效果更明显:对于垂直线性布局,你将看到weight在设备竖屏模式时最有效,而对于水平线性布局,你将看到weight在横屏模式时最有效。

首先,尝试设置权值使得每个TextView彩色带在屏幕占据相同的区域。提示:5个控件设置为0.14和2个控件设置为0.15总和为1.0。

如果你正确地配置你的控件,你的屏幕应该看起来像这样:

接下来,尝试设置权值使得每个TextView控件在屏幕上逐渐增大,比如RED带最小而VIOLET带最大。提示:一个不错的分布是:0.08,0.10,0.12,0.14,0.16,0.18,0.22。

如果你正确地完成了这一步,你的布局应该像这样:

为了好玩,换到横屏模式并发现一样的布局如下:

附加测验:用Java程序重新创建步骤4b中使用的布局

如果你发现前面的测验相当简单,考虑下面附加的测验:用Java程序重新创建你最后的布局资源(每个TextView控件有渐变的权值),代替在布局XML资源里控制。

你需要在你的活动的onCreate()方法中添加setContentView()调用并创建你的线性布局,就像《Android用户界面设计:线性布局》中讨论的一样。

这里有一些用程序实现rainbow布局的提示:

以构造每个TextView控件开始。

配置每个TextView控件的布局参数,构造一组LinearLayout.LayoutParams,设置每个控件的layout_width,layout_height和权值。

使用TextView类的setText()方法来加载和显示合适的字符资源。

使用TextView类的setTextSize()方法来配置文本的字体大小。你可以使用getResources().getDimension()来获得标尺资源。

使用TextView类的setTextColor()方法来配置文本的字体颜色。你可以使用getResources().getColor()来加载颜色资源。

使用TextView类的setBackgroundColor()方法来配置控件的背景色。同样,你可以使用getResources().getColor()来加载颜色资源。

使用TextView类的setGravity()方法来配置文本对齐。Gravity类包括了不同的对齐类型的定义。

接下来,构造LinearLayout控件。

使用LinearLayout类的setOrientation()方法来配置布局方向。LinearLayout类包括了两种方向的定义。

使用LinearLayout类的setGravity()方法来配置布局的子控件的对齐。Gravity类包括了不同的对齐类型的定义。

当你用程序设置子控件的权值,你也必须使用LinearLayout类的setWeightSum()方法设置总权值,比如setWeightSum(1.0f)。

别忘了构造一个LayoutParams对象来设置线性布局本身的高和宽。

使用addView()方法将每一个TextView控件添加到你的LinearLayout对象中。

最后,使用setContentView()方法来显示你刚才配置好的LinearLayout。

总结

Android用户界面设计师一直在使用线性布局来水平或竖直地有序地显示控件。你可以使用线性布局的对齐属性控制子控件在哪里显示。你可以使用layout_weight属性控制每一个子控件分配的空间。

java 界面线性布局_Android UI基本测验:线性布局相关推荐

  1. java 界面线性布局_Android用户界面设计:线性布局

    理解布局对于良好的Android程序设计来说很重要.在这个教程中,你将学习到所有关于线性布局的东西,它在屏幕上垂直地或水平地组织用户界面控件或者小工具.使用得当,线性布局可以作为基本的布局,基于这个布 ...

  2. java界面设计 代码_Android开发——纯JAVA代码方式界面设计

    之前我们写Android页面都是在XML文件里写的,今天我们换个口味,在JAVA文件里写我们的Android页面.至于为什么要用java来写,不直接在XML文件里写,这个问题的答案很简单,因为麻烦嘛, ...

  3. android登陆界面左右两种登陆布局,Android UI组件----用相对布局RelativeLayout做一个登陆界面...

    [声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 两个小时的学习成果,对于我这种还没入门但渴望不断进步的初学者来说,是一种激励.通过自己一行一行的敲代码,实现了用相对布局做一个登陆界面的效果. ...

  4. HarmonyOS UI开发 DirectionalLayout(定向布局) 的使用

    DirectionalLayout 是什么 DirectionalLayout 是定向布局,控件水平或垂直排列(类似Android 的线性布局不过还是有区别的) DirectionalLayout的自 ...

  5. HarmonyOS UI开发 PositionLayout(位置布局) 的使用

    PositionLayout 是什么 PositionLayout 是位置布局,在PositionLayout中,子组件通过指定准确的x/y坐标值在屏幕上显示.(0, 0)为左上角:当向下或向右移动时 ...

  6. java 界面线性布局_布局Layouts之LinearLayout线性布局

    从Hello world!开始,我们一直都是在一种布局下学习的,当然,对于基础内容的学习,还是没有任何问题的!但-- 在Android开发中UI设计也是十分重要的,当用户使用一个App时,最先感受到的 ...

  7. android java与界面的关联_Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)...

    当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易.其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件. 一:Androi ...

  8. java 通过xml控制ui_3.1.1 使用XML布局文件控制UI界面

    3.1.1   使用XML布局文件控制UI界面 在Android中,提供了一种非常简单.方便的方法用于控制UI界面.该方法采用XML文件来进行界面布局,从而将布局界面的代码和逻辑控制的Java代码分离 ...

  9. java界面布局都有什么_java入門教程-10.5Java圖形界面之布局設計

    在界面設計中,一個容器要放置許多組件,為了美觀,為組件安排在容器中的位置,這就是布局設計.java.awt中定義了多種布局類,每種布局類對應一種布局的策略.常用的有以下布局類: FlowLayout, ...

最新文章

  1. 从根因入手,更有效率,效果也更好
  2. Fragment注入漏洞(CVE-2013-6271)检测
  3. 在Python中访问字典中的任意元素
  4. 用c语言写扫雷游戏倒计时代码,课内资源 - 基于VS2013实现的扫雷小游戏
  5. 项目乱码 GBK转UTF-8工具
  6. WPF - Group分组对ListBox等列表样式的约束
  7. ML之Clustering:关于Clustering进阶的那些不可告密的事
  8. LeetCode 887. Super Egg Drop
  9. 在Windows下的virtualenv中搭建Flask+MySQLDb开发环境
  10. HTML网页作业个人网站源码div+css布局
  11. django和php学哪个好,哪个更适合我的项目:Django、Plone、php还是rubyonrails
  12. android shell卸载应用程序,adb shell删除系统apk
  13. 360极速浏览器如何设置ie8兼容模式
  14. 服务器添加打印机显示没有权限,无法连接打印机(没有权限使用网络资源)解决方法和原因...
  15. APM, EAM, AIP都是什么鬼?
  16. Mysql 一次性执行多条语句的实现
  17. SAP中成本估算取价与价格协议的状态关联测试
  18. win7计算机高级设置在哪,windows7投屏设置在哪里
  19. 在linux中使用getch()函数
  20. elementUI 表格合并单元格-多层级-合并行

热门文章

  1. python词频统计实验报告_Python实验报告八
  2. PMI-ACP知识要点
  3. 【Excel】单元格自动根据内容改变大小
  4. 蓝桥杯试题盾神与积木游戏之论减少时间复杂度的重要性
  5. 符号引用,动态链接,静态链接,直接引用的区别
  6. GItLab下载项目
  7. 盐湖二中2021年高考成绩查询,山西运城盐湖二中迎来陕西商洛镇安二中考察团交流学习...
  8. 如何用ChatGPT使开发效率提高50%以上?
  9. 基于selenium的斗鱼直播房间详细信息自动化爬虫
  10. 企业做图表,不会字典数据抓取,告别手动生成字典绘图