选择最佳的Android布局

时间:2013-03-09 23:40:48

标签: android layout

我是Android新手,希望按照以下方式进行布局:

  1. 顶部的徽标。
  2. 使用带圆角的矩形
  3. 在该Rectangle中,我将有两个用于用户ID和密码的EditText框,以及一个登录按钮
  4. 在圆角(外面)的矩形下方,我有一个Html Link to Terms&条件
  5. 我尝试了各种布局方式

    1. 仅使用布局。不同种类的布局。所有似乎都很难实现我的需要
    2. 使用布局+背景。背景不是真正的背景,但更像是模板,它会影响您的布局,并且很难控制您想要控件所在的位置。
    3. 使用onDraw。灵活但担心不同屏幕尺寸可能会出现问题。
    4. 所以,有人请说明这是实现我需要的最佳方式吗?

3 个答案:

答案 0 :(得分:2)

没有人能真正告诉你什么是最好的,这取决于你想要什么,但我会建议使用RelatvieLayout,因为它们通常是最简单,最有效的,一旦你使用它们,在我看来。您可以阅读Here以了解如何执行矩形。您基本上将使用shape drawable并调整radius的{​​{1}}。

就顶部的徽标而言,如果它会在其他corners中重复使用,那么您可以将其置于自己的布局中并使用布局中的include标记重复使用徽标布局

如果您担心屏幕尺寸不同,请阅读Docs并找到适合您的屏幕。 刚开始,随时调整。不要害怕搞砸并重做一些。希望这是足以让您入门的信息

使用Activity可以为您提供更大的灵活性,并允许您使用较少的RelativeLayout,例如嵌套LayoutsLinearLayout,只有一个孩子可以提高效果

答案 1 :(得分:2)

这是应该怎么做的: 从垂直方向的线性布局开始:

<linearLayourt xmlns=............
android:orientation="vertical"
.....other stuffs goes here
......
.....
<LinearLayout ......this is the child linearlayout
.....other stuffs goes here like width and height
<ImageView ...this is where you are gonna put your logo in
/>
</LinearLayout> ....close your child linear layout
<RelativeLayout ...
.........other stuffs here
<EditText ....1st edit text
...you position your boxes here
/>
<EditText ....2nd edit text
...you position your boxes here
/>
</RelativeLayout>
<TextView 
....
...
...put yout hyperlink for this text
/>
</LinearLayout> ...this is the parent linear layout

答案 2 :(得分:0)

对于创建登录屏幕的情况,它并不重要,因为它是一个相对简单的设计屏幕。我个人喜欢使用XML来设计我的布局,并且从未使用onDraw方法完成它。

我对@codeMagic的建议是学习如何使用和操作RelativeLayouts,因为这会阻止您创建真正不推荐的级联布局,并且需要很长时间才能加载。

当我开始针对Android进行编程时,我发现LinearLayout是最容易理解和使用的,但使用它会在复杂的屏幕设计中将LinearLayouts带到LinearLayouts内,后来使用RelativeLayout,我意识到在大多数情况下,一个RelativeLayout可以替换许多级联线性的。{/ p>

在你的情况下,你可以做一些这样的事情:

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

      <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/drop_down_icon" />

   <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/imageView1" >

    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText1" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText2"
        android:layout_centerHorizontal="true"
        android:text="Button" />



    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true"
        android:text="TextView" />

</RelativeLayout>

剩下的就是添加所需的填充和边距。