对于您创建登录屏幕的情况,这并不重要,因为它是一个相对容易设计的屏幕。我个人喜欢使用 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>
剩下的就是添加所需的填充和边距。