初探Activity2:添加简单的UI控件

Activity是用来展示界面的,所以在继续了解Activity的知识之前,还是应该先了解一下如何在Activity中添加简单的UI控件。上一节那个Button按钮,我是通过界面编辑器的“Design”面板直接拖拉进去的,代码是直接生成的。这一节,就通过代码的方式,来给Activity添加一些简单的UI控件。

参考资料

如果要更加深入,可以看CodePath Android Cliffnotes的“Views and Layouts”那一部分的内容。

这节了解的UI控件

View 控件
TextView 文本
Button 按钮
EditText 文本编辑框
ImageView 图片

View和ViewGroup?

在了解UI控件之前,我们首先要知道Android中的“View和ViewGroup”。
这里写图片描述
看上面这个图,Android的图形用户界面是通过上图View和ViewGroup对象这样的层级关系来构建的。View对象通常就是像Button、TextView这样的UI控件。而ViewGroup对象则是一些你看不见的“视图容器”,它定义了它所包含的那些View子元素是怎样布局的,例如是网格列表又或者是垂直列表。

Android中用XML文件对应View和ViewGrop的子类,因此可以用XML来定义一系列UI元素的层级。

另外要注意,看下面官方文档的截图,ViewGroup是View的子类。

具体的View和ViewGroup?

View或ViewGroup 常见的具体元素
View Button、TextView、EditText……
ViewGroup RelativeLayout、LinearLayout、FrameLayout……

截取官方文档:
View
这里写图片描述

从上面的内容,我们知道应该是ViewGroup这个看不见的“容器”包含View子元素。
就是例如LinearLayout中包含着Button、TextView、EditText等等,
所以我们接下来就学习一下,怎么创建LinearLayout,怎么添加Button、EditText等等控件到LinearLayout中。

创建一个LinearLayout

1.在AndroidStudio的”res/layout”目录中,新建或打开一个layout布局xml文件。这里可以用自动生成的”activity_main.xml”文件来测试。
2.上一节是直接通过“所见即所得”的预览编辑窗口来添加界面元素的,现在选择编辑窗口底部“Design|Text”中的“Text”来通过代码直接编辑界面。
3.直接把原来的代码删掉,把下面的代码贴到进去。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button2"
        android:layout_gravity="center_vertical" />

</LinearLayout>

4.来说明一下:
LinearLayout是指定通过”android:orientation”属性,把它里面的子View元素(Button、TextView这些)按照水平或者垂直方向排列的view group(ViewGroup的子类)。

另外”android:layout_width”和”android:layout_height”这两个属性则是所有View元素(也就包括ViewGroup了)都必须指定的,用于指定它们的大小。

因为现在这个LinearLayout是这个layout布局的根View,所以它应该填充满整个屏幕,这里是通过“match_parent”给宽高来设置。“match_parent”意思就是这个View应该扩充它的宽或高去匹配它父View的宽或高。

For more information about layout properties, see the Layout guide.
更多关于layout布局参数的信息,可以看官方文档的介绍:Layout API Guide

添加一个EditText

1.还是在刚才操作的那个layout文件,我这里就是”activity_main.xml”。在<LinearLayout>标签里面,定义一个<EditText>,并且把它的id设置为@+id/edit_message
2.定义”layout_width” 和”layout_height”属性为”wrap_content”。
3.定义一个hint属性,并为它赋值一个名为“edit_message”的字符串对象。
最后就是下面这个样子:

<EditText android:id="@+id/edit_message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />

下面来解释一下刚才所设置的属性:

  • android:id
    这个属性为View控件提供了一个唯一的id,这样你就可以在app的代码中使用这个控件对象的引用,例如去读取并操作这个对象。(之后会有这部分内容)

The at sign (@) is required when you’re referring to any resource object from XML. It is followed by the resource type (id in this case), a slash, then the resource name (edit_message).

当你从XML中”@”符号 refer to

The plus sign (+) before the resource type is needed only when you’re defining a resource ID for the first time. When you compile the app, the SDK tools use the ID name to create a new resource ID in your project’s gen/R.java file that refers to the EditText element. With the resource ID declared once this way, other references to the ID do not need the plus sign. Using the plus sign is necessary only when specifying a new resource ID and not needed for concrete resources such as strings or layouts. See the sidebox for more information about resource objects.

  • android:layout_width和android:layout_height

  • android:hint

[未完待续]

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MobileJoy/article/details/51545042
个人分类: Android基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

初探Activity2:添加简单的UI控件

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭