ログイン画面を作成する場合は、設計が比較的簡単な画面であるため、実際には問題ではありません。個人的には、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>
あとは、必要なパディングとマージンを追加するだけです。