0

我是 Android 新手,希望做如下布局:

  1. 顶部有一个徽标。
  2. 接下来是带圆角的矩形
  3. 在该矩形内,我将有两个用于用户 ID 和密码的 EditText 框,以及一个登录按钮
  4. 在带圆角的矩形下方(外部)我有一个指向条款和条件的 Html 链接

我尝试了各种布局方式

  1. 仅使用布局。不同种类的布局。一切似乎都很难实现我所需要的
  2. 使用布局+背景。背景并不是真正的背景,而是更像一个模板,它会影响你的布局,并且很难控制你想要控制的位置。
  3. 使用 onDraw。灵活但担心不同的屏幕尺寸可能会出现问题。

那么,有人请启发这是实现我需要的最佳方法吗?

4

3 回答 3

2

没有人能真正告诉你什么是最好的,这完全取决于你想要什么,但我建议使用RelatvieLayout,因为在我看来,一旦你稍微使用它们,它们通常是最简单和最有效的使用。您可以阅读此处了解如何制作矩形。你基本上会使用和shape drawable调整radius.corners

至于顶部的 logo,如果它会在其他Activitys 中重用,那么您可以将其放在自己的布局中,并在您的布局中使用include标签来重用 logo 布局

如果您担心不同的屏幕尺寸,请阅读文档并找到适合您的方法。只需从它开始并随时调整。不要害怕搞砸并重做一些。希望这是足够的信息让你开始

使用 aRelativeLayout会给你更大的灵活性,并允许你使用更少的东西Layouts,例如嵌套LinearLayout的 s 和Layout只有一个孩子的 s,这可以提高性能

于 2013-03-10T00:07:37.867 回答
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
于 2013-03-10T00:08:04.763 回答
0

对于您创建登录屏幕的情况,这并不重要,因为它是一个相对容易设计的屏幕。我个人喜欢使用 XML 来设计我的布局,但从未见过使用这种onDraw方法完成它。

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

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

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

 <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>

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

于 2013-03-10T00:42:09.303 回答