IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Android UI基本测验:相对布局

RockUX | WEB、前端、JavaScript、PHP 2011-06-02 13:24:41 累计浏览 3,833 次
本机暂存

    你已经阅读了相对布局在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:定义布局资源

        先创建一个新的布局资源文件relativerainbow.xml。在这个XML文件中,增加一个填充整个屏幕的相对布局控件,设置对齐属性为居中对齐。接下来,你需要添加七个TextView控件做为这个相对布局的子控件,每个TextView都对应上文提到的七种颜色之一。将每个TextView控件的文本值设置成光谱色中的合适颜色名称,并把背景色设置成合适的颜色。同时,将每个控件的layout_width属性设置为wrap_content;layout_height属性设置为wrap_content,将padding设置为合适的值,比如8dp。

         如果你已经正确的完成了这个步骤,你的程序布局看起来应该像下图所示的一样:

        原图已失效

        注意到所有的控件都堆积在另一个控件的上边,只有最后一个控件被添加到“顶部”。

    测验2: 堆叠显示子控件

        我们想让每个TextView控件和每个颜色都能以正确的顺序显示。我们已经使用了线性布局来组织我们的控件,但我们想让它的扩展性更强些。

         给每个TextView控件增加一个相对布局规则,这样每一个控件就按顺序(Red, Orange, Yellow, Green, Blue, Indigo, Violet)一个接着一个在垂直方向堆叠显示出来。

         现在你的布局看起来应该跟下图一样:

        原图已失效

        提示:注意adroid:layout_below属性

    测验3:错落显示子控件

        到目前为止,我们简单地用一个垂直方向上的线性布局来显示控件。现在,我们不仅仅要堆叠显示TextView子控件,而且要让它们能够显示在彼此的左边或右边,以达到下图所示的效果:

        原图已失效

        提示:为了达到这个效果,你需要两种不同的相对布局规则,并结合以下两个属性: android:layout_toLeftOf 和android:layout_toRightOf。仅仅为了好玩,切换到横屏模式,看一下同样布局的效果:

        原图已失效

    附加测验:用Java重新创建布局

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

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

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

  • 首先创建每个TextView控件,用setId()方法给每个控件一个唯一的ID。
  • 为了给每个TextView配置布局参数,创建一系列RelativeLayout.LayoutParams,用来设置每个控件的layout_width和layout_height属性。
  • 使用RelativeLayout.LayoutParams 对象的addRule()方法给每个TextView控件配置合适的显示规则。
  • 使用TextView类的setText()方法加载和显示合适的字符串资源。
  • 使用TextView类的setTextSize()方法设置文本的字体大小。你可以使用getResources().getDimension()方法载入尺寸资源。
  • 使用TextView类的setTextColor()方法设置文本的文本颜色。你可以使用getResources().getColor()方法载入颜色资源。
  • 使用TextView类的setBackgroundColor()方法设置控件的背景色。你可以使用getResources().getColor()方法载入颜色资源。
  • 使用TextView类的setGravity()方法设置文本的对齐方式。Gravity类包含有多种定义好的对齐类型。
  • 下一步,构造一个RelativeLayout控件。
  • 使用setGravity()方法配置这个布局的子控件的对齐方式。Gravity类包含有多种定义好的对齐类型。
  • 不要忘记创建一个LayoutParams对象来设置相对布局控件自己的height和width属性。
  • 使用addView()方法将每个TextView控件增加到你的RelativeLayout对象中。
  • 最后使用setContentView()方法来显示你刚才配置的RelativeLayout控件。
  • 总结

        Android用户界面设计者一直使用相对布局来相对于另一个控件来展示控件。子控件可以被显示在另一个子控件的附近(上面,下面,左边,右边)或显示在相对于父布局的不同位置。布局规则用来描述每个子控件在屏幕上的显示位置。

         祝你好运![English]

    同分类推荐文章

    1. 「置顶」我做了什么 (2026-05-05 12:13:28)
    2. 万字长文推演:手机不再从 App 开始,Agent OS 如何接管任务入口 (2026-04-28 14:57:22)
    3. Android Perfetto 系列 10 - Binder 调度与锁竞争 (2025-11-16 15:33:30)

    查看更多 移动开发 文章 →

    建议继续学习

    1. SmartSprites - 命令行形式的CSS Sprites生成器 (累计阅读 123,895)
    2. 情绪版(Mood board)操作流程的新思考 (累计阅读 41,753)
    3. Java开发岗位面试题归类汇总 (累计阅读 22,157)
    4. android 开发入门 (累计阅读 19,529)
    5. 我的PHP,Python和Ruby之路 (累计阅读 13,150)
    6. HashMap解决hash冲突的方法 (累计阅读 12,655)
    7. Android 连接SSID隐藏网络以及 LEAP 认证的方法 (累计阅读 9,539)
    8. 一个大二学生有关如何成为一名软件工程师的疑问及答复 (累计阅读 9,181)
    9. 让安卓手机通过代理翻墙的方法 (累计阅读 9,116)
    10. Java程序员应该知道的10个eclipse调试技巧 (累计阅读 8,014)