0

私はAndroidが初めてで、以下のようなレイアウトをしたいと思っています:

  1. 上のロゴ。
  2. 角の丸い長方形に続く
  3. その Rectangle 内に、ユーザー ID とパスワード用の 2 つの EditText ボックスと、1 つのログイン ボタンがあります。
  4. 角の丸い長方形 (外側) の下に、利用規約への HTML リンクがあります。

いろいろなレイアウト方法を試しました

  1. レイアウトのみ使用。さまざまな種類のレイアウト。私が必要とするものを達成することはすべて非常に難しいようです
  2. レイアウト + 背景の使用。背景は実際には背景ではありませんが、テンプレートに似ており、レイアウトに影響し、コントロールを配置したい場所を制御することは非常に困難です。
  3. onDraw を使用します。柔軟ですが、画面サイズが異なると問題が発生するのではないかと心配しています。

それで、誰かが私が必要とするものを達成するための最良の方法を教えてください?

4

3 に答える 3

2

何が最適かは誰にもわかりません。それはあなたが何を望んでいるかによって異なりますが、RelatvieLayoutを使用することをお勧めします。長方形を作成する方法については、こちらを参照してください。基本的に の を使用shape drawableして調整しradiusますcorners

上部のロゴに関しては、他Activityの s で再利用する場合は、それを独自のレイアウトに配置し、レイアウトでincludeタグを使用してロゴ レイアウトを再利用できます。

さまざまな画面サイズについて心配している場合は、ドキュメントを読んで、自分に合ったものを見つけてください。それを始めて、あなたが行くように調整してください。失敗してやり直すことを恐れないでください。うまくいけば、これはあなたが始めるのに十分な情報です

を使用するRelativeLayoutと、柔軟性が向上しLayouts、ネストされたLinearLayouts やLayout子が 1 つしかない 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 を使用してレイアウトをデザインするのが好きですが、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 に答える