Android-创建一个简单的用户接口-(补day2内容)

如果按照之前的布局设置,那么输入框和按钮组件的大小就会是刚好满足它们的内容的。如图1.

edittext_wrap

图1.输入框和按钮宽度设置为”wrap_content”

这样的设置是可以满足按钮的,但不能满足输入框的要求,因为用户可能会输入比默认内容更多的东西。所以,输入框的大小最好设置为刚好占满没使用的屏幕宽度。你可以通过在LinearLayout的weight属性来设置,即指定 android:layout_weight 属性。

应该指定一个不同视图之间的空白间隔值,每一个元素与另外一个元素之间都应该存在这样的空白消耗。这就像某种调和酒的不同成分一样“2份伏特加,1份咖啡利口酒”代表着有2/3的是伏特加。比如,如果你把一个视图的大小设置为2,另外一个设置为1,总的大小就是3,所以第一个视图将占满2/3的空间,而第二个视图占据剩下的空间。如果你增加第3个视图并设置比重值为1,那么第一个视图现在就占据1/2的控件,其他两个各占1/4。

默认比重对所有视图来说都是0,所以如果指定任意大于0的比重到任何一个视图,这个视图都将将会占满所有其他视图占用之后剩下的空余空间。现在,让EditText占满整个界面的剩余空间,设置EditText元素的比重为1按钮不设置。

    <EditText
        android:layout_weight="1"
        ... />

为了增加布局效率,当指定比重参数时,你应该设置元素宽度为0dp。设置宽度为0可以增加效率是因为使用”wrap_content”作为宽度时系统需要计算宽度值,但这个值缺失无效的,因为比重值需要另外一个宽度计算来填充剩余空间。

    <EditText
        android:layout_weight="1"
        android:layout_width="0dp"
        ... />

图3展示了设置比重值之后的文本框状态。

edittext_gravity

图3.文本框组件占了所有比重,所以占满了LinearLayout布局的所有剩余空间。

到目前为止,布局文件应该如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

这个布局已经应用到通过SDK工具在创建的默认的Activity类中。所以可以直接运行应用查看效果。

1)在Eclipse中可以点击Runeclipse-run按钮运行

2)在命令行中运行,输入:

ant debug
adb install bin/MyFirstApp-debug.apk

下一课将学习为按钮增加相应,读取文本框的内容并发送到另外一个activity中。

原文地址:https://www.cnblogs.com/justbeginning/p/3613040.html