Android开发之基本控件和四种布局方式详解
概述
本篇攻略主要介绍Android开发中常用的基本控件和四种布局方式,其中基本控件包括TextView、Button、EditText、ImageView、CheckBox、RadioButton、SeekBar、ProgressBar、Switch、Spinner等,四种布局方式包括线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)和表格布局(TableLayout)。
基本控件
TextView
TextView是Android开发中常用的基本控件,用于显示文本内容。在XML布局文件中使用TextView可以这样写:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
其中,android:layout_width和android:layout_height用于设置控件的宽度和高度,wrap_content表示根据内容自适应大小,fill_parent(已弃用,改用match_parent)表示填满父布局,具体可参考Android官方文档。
Button
Button是用于响应用户点击事件的基本控件。在XML布局文件中使用Button可以这样写:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me!" />
其中,android:text用于设置Button上的文本。
EditText
EditText是用于输入文本内容的基本控件。在XML布局文件中使用EditText可以这样写:
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter something here" />
其中,android:hint用于设置EditText中没有输入内容时的提示信息。
ImageView
ImageView用于显示图片。在XML布局文件中使用ImageView可以这样写:
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/image" />
其中,android:src用于设置ImageView显示的图片资源。
CheckBox
CheckBox用于选择多个选项中的一个或多个。在XML布局文件中使用CheckBox可以这样写:
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 1" />
其中,android:text用于设置CheckBox的文本。
RadioButton
RadioButton用于选择多个选项中的一个。在XML布局文件中使用RadioButton可以这样写:
<RadioButton
android:id="@+id/radiobutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 1" />
<RadioButton
android:id="@+id/radiobutton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 2" />
其中,两个RadioButton要放在同一组中,可以使用RadioGroup将其包裹。
SeekBar
SeekBar用于设置数值范围。在XML布局文件中使用SeekBar可以这样写:
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100" />
其中,android:max用于设置SeekBar的最大值。
ProgressBar
ProgressBar用于显示进度条。在XML布局文件中使用ProgressBar可以这样写:
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
其中,ProgressBar有很多样式可供选择,例如spinner、horizontal等,可通过样式属性进行设置。
Switch
Switch用于在两种状态之间切换。在XML布局文件中使用Switch可以这样写:
<Switch
android:id="@+id/switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Spinner
Spinner用于选择一项。在XML布局文件中使用Spinner可以这样写:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/options" />
其中,android:entries用于设置Spinner中的选项,可以使用数组资源或者List进行设置。
四种布局方式
线性布局(LinearLayout)
LinearLayout按照水平或垂直方向排列子控件。在子控件上设置android:layout_weight可以控制子控件的相对大小。首先看一个垂直方向的示例:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 1" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 2"
android:layout_weight="1" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 3"
android:layout_weight="2" />
</LinearLayout>
其中,android:orientation用于设置LinearLayout的排列方向为垂直方向。此外,Button 2和Button 3都设置了android:layout_weight属性,表示在父布局中分别占1/3和2/3的空间。
相对布局(RelativeLayout)
RelativeLayout可以让子控件相对于父控件或其他子控件进行布局。例如,让TextView位于Button右边:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_toRightOf="@id/button" />
</RelativeLayout>
其中,android:layout_toRightOf用于设置TextView相对于Button位于右侧。
帧布局(FrameLayout)
FrameLayout可以让子控件按照层叠顺序布置。例如,一个ImageView和一个Button位于同一位置:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/image" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</FrameLayout>
其中,ImageView的大小与FrameLayout相同,覆盖在Button上方。
表格布局(TableLayout)
TableLayout将子控件按照表格形式排列。例如,一个包含两个TextView和两个EditText的表格:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 1" />
<EditText
android:id="@+id/edittext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter something here" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 2" />
<EditText
android:id="@+id/edittext2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter something here" />
</TableRow>
</TableLayout>
其中,每个TableRow代表一个表格行,包含两个TextView和两个EditText。每个TextView和EditText的android:layout_width属性均为match_parent,表示在同一行中平分宽度。
总结
本篇攻略主要介绍了Android开发中常用的基本控件和四种布局方式。在实际开发中,可以根据具体需求选择不同的控件和布局方式,比如需要显示图片就使用ImageView,需要选择多个选项就使用CheckBox和RadioButton,需要子控件按照特定方式排列就使用对应的布局方式。掌握这些基础知识之后,就可以更加自如地开发Android应用程序了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android开发之基本控件和四种布局方式详解 - Python技术站