一、View和ViewGroup
Android体系中UI的设计采用视图层次的结构。
视图层次: 由View和ViewGroup组成。在创建UI时,开发人员不会真正去创建View或者ViewGroup,而是直接使用Android所提供的具有不同功能的控件,因此通常是看不到View或ViewGroup。
View是Android系统中最基本的组件,同时也是Android所有可视组件的父类,它完成了构建按钮、文本框、时钟等诸多控件的基本功能。此外View还有一个非常重要的子类ViewGroup。
View与ViewGroup的区别:ViewGroup能够容纳多个View作为ViewGroup的子组件,同时View也可以包含ViewGroup作为其子组件,所以View和ViewGroup是相互包容、“你中有我,我中有你”的关系。
wrap_content: 是layout_width和layout_height的属性值之一,表示和自身内容一样的长度。(由内容决定)
match_parent: 是layout_width和layout_height的属性值之一,表示和父组件一样的长度。
fill_parent: 以填充布局单元内尽可能多的空间。
margin属性: 外边距,指当前视图与其他视图间的距离,可以一次性指定上下左右四个外边距值,也可以一次性指定上下左右采用同一个边距值。
android:layout_margin="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
padding属性: 内边距,指当前视图边距与其内容间的距离。赋值跟margin属性同类型。
android:layout_padding="10dp"
android:layout_paddingTop="10dp"
android:layout_paddingBottom="10dp"
android:layout_paddingLeft="10dp"
android:layout_paddingRight="10dp"
visible属性:
android:visiblity="visible"
android:visiblity="invisible"
android:visiblity="gone"
二、Android的五种常见控件
2.1 文本控件
在Android的体系结构中,TextView和EditView之间是父类和子类的关系。即EditText继承于TextView,因此EditText几乎具备TextView的所有功能,两者之间最大的不同在于:EditText能够支持用户输入,而TextView不能。
2.1.1 TextView
TextView是用于显示文字(字符串)的控件,可在代码中通过设置属性改变文字的大小、颜色、样式等功能。
注意:
颜色值组成(三原色)有三种表示方法1.#RGB:3位16进制整数,如:#f00
2.#RRGGBB:#00ff00
3.#AARRGGBB:#ff0000ff
2.1.2 EditText
EditText是可以进行编辑操作(用于用户输入和编辑文字或字符的控件)的文本框,将用户信息传递给Android程序。还可以为EditText控件设置监听器,用来测试用户输入的内容是否合法。
2.2 按钮控件
2.2.1 Button
Android的体系结构中Button继承于TextView,而ImageButton继承于ImageView。虽然这两个控件继承于不同的控件,但是Button和ImageButton都是用于完成用户的单击按钮时的onClick事件。
Button是按钮,是用于响应用户的一系列点击事件,使程序更加流畅和完整。
点击事件(监听事件)实现方式(三种):
☞ 实现方式一:
先在layout文件中指定onClick属性:Android:onClick=“click”。然后在Activity中实现这个click方法
public void click (View v){
/// 处理按钮监听事件
}
☞ 实现方式二:在Activity中添加匿名内部类
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void OnClick(View v){
/// 处理按钮监听事件
Log.i("匿名内部类方式","button is clicked");
}
});
☞ 实现方式三:
public class MainActivity implements View.OnClickListener
{
//实现接口抽象方法
public void onClick(View v){
//处理按钮监听事件
}
}
//在Activity中注册回调接口
button.setOnClickListener(this);
2.2.2 RadioButton
RadioButton为单选按钮,它需要与RadioGroup配合使用,提供两个或多个互斥的选项集。(如男、女)
RadioGroup是单选组合框,可容纳多个RadioButton,并把它们组合在一起,实现单选状态。
RadioButton按钮的实现步骤:
1.先在UI布局文件activity——main.xml中的LinearLayout标签中添加如下代码:
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radiobutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Male"/>
<RadioButton
android:id="@+id/radiobutton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Female"