Android基础知识回顾——Android常用控件

Android常用控件

这篇文章主要写Android常用控件及使用方法,Android给我们提供了大量的UI控件,合理的使用这些控件就可以写出很多不错的界面,这些都是Android学习的基础,基本上没有什么逻辑,多练一下就可以很好的入手。

1.文本类控件TextView
TextView是Android程序开发中最为常用的空间之一,它的主要功能就是向用户展示文本的内容,它只能通过初始化设置或者在程序中修改,除此之外 不能修改。
下面介绍一下TextView常用属性`

<TextView

//控件id
android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx

//宽度与高度
android:layout_width="wrap_content"  //wrap_content或者match_parent
android:layout_height="wrap_content"  //wrap_content或者match_parent

//文本文字 
android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素

//字体大小
android:textSize="24sp"  //以sp为单位

//字体颜色
android:textColor="#0000FF"  //RGB颜色

//字体格式
android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal

//文本显示位置
android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等

//是否只在一行内显示全部内容
android:singleLine="true"  //true或者false,默认为false

2.文本类控件EditText
相比TextView而言 EditText是可以编辑的,可以用于用户进行交互,其用法和TextView差不多。
下面同样介绍一些常用的参数

//控件id
android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx

//宽度与高度
android:layout_width="wrap_content"  //wrap_content或者match_parent
android:layout_height="wrap_content"  //wrap_content或者match_parent

//文本文字 
android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素

//文本提示内容
android:hint="hello_world" //android:text和android:hint区别是后者只是提示作用,真正需要输入的时候提示的内容会消失

//字体大小
android:textSize="24sp"  //以sp为单位

//字体颜色
android:textColor="#0000FF"  //RGB颜色

//字体格式
android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal

//文本显示位置
android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等

//是否只在一行内显示全部内容
android:singleLine="true"  //true或者false,默认为false

//输入内容设置为password类型
android:password="true"  //输入的内容会变成······

//输入内容设置为phoneNumber类型
android:phoneNumber="true"  //只能输入数字

//设定光标为显示/隐藏
android:cursorVisible = "false" //true或者false,默认为true显示

3.按钮类控件Button
Button控件也是使用最多的控件之一,所以我们需要好好掌握。用户可以通过单击事件来点击Button来触发一系列事件,就是要先为Button注册监听事件,来实现Button的监听事件。
让我们来看一下Button的配置属性,其实和TextView差不多,而且还更简单一些。

<Button

//控件id
android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx

//宽度与高度
android:layout_width="wrap_content"  //wrap_content或者match_parent
android:layout_height="wrap_content"  //wrap_content或者match_parent

//按钮上显示的文字 
android:text="theButton" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素@string/button

//按钮字体大小
android:textSize="24sp"  //以sp为单位

//字体颜色
android:textColor="#0000FF"  //RGB颜色

//字体格式
android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal

//是否只在一行内显示全部内容
android:singleLine="true"  //true或者false,默认为false

然后我们需要在Activity中为Button的点击事件注册一个监听器,以下介绍联众方式来实现按钮监听事件。
1.通过匿名内部类作为事件监听器类,这种方法适用于世间监听器只是临时使用一次,因为大部分时候,事件处理器都没有什么利用价值,这是使用最为广泛的方法:

public class MainActivity extends Activity {
    private EditText edittext;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.edit_text);
        button = (Button) findViewById(R.id.button);
        //为button按钮注册监听器,并通过匿名内部类实现
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            //点击Button会改变edittext的文字为"点击了Button"
            edittext.setText("点击了Button");
            }
        }); 
    }
}

2.使用时限接口的方式来进行过注册,让Activity类实现了OnClickListener事件监听接口,从而可以在该Activity类中世界定义时间处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用this作为事件监听器作为对象即可

public class MainActivity extends Activity implements OnClickListener {
    private EditText edittext;
    private Button button;
    private Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.edit_text);
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button.setOnClickListener(this);
        button2.setOnClickListener(this);
    }

    @Override
    //用switch区分是哪个id
    public void onClick(View v) {
        switch (v.getId()){
        case R.id.button:
            edittext.setText("点击了Button");
            break;
        case R.id.button2:
            edittext.setText("点击了Button2");
            break;
        }
    }
}

4.按钮类控件ImageButton
ImageButton和Button类似,也是一个按钮,不过是一个图片按钮。ImageButton可以实现我们任何想要的图片按钮的效果。
下面还是先给出一些常见的属性;

<ImageButton

//控件id
android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx

//宽度与高度
android:layout_width="wrap_content"   //wrap_content或者match_parent
android:layout_height="wrap_content"  //wrap_content或者match_parent

//此外,可以具体设置高度和宽度显示的像素,不过这样设置如果图片尺寸大于设置的显示的尺寸,则图片是显示不全的,这是可以配合android:scaleType属性。
android:layout_width="200dp"
android:layout_height="200dp" 

//把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageButton.
android:scaleType="fitXY"

//其他的关于android:scaleType的参数解释,也可以参考下面的直观图
//android:scaleType="center"  在视图中心显示图片,并且不缩放图片
//android:scaleType="centercrop"  按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
//android:scaleType="centerinside"  按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
//android:scaleType="fitcenter" 按比例缩放图片到视图的最小边,居中显示
//android:scaleType="fitend" 按比例缩放图片到视图的最小边,显示在视图的下部分位置
//android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
//android:scaleType="matrix" 用矩阵来绘制

//图片来源,需要将图片复制放到res/drawable文件夹里面,引用的时候不需要写图片的后缀
android:src ="@drawable/beautiful">  

ImageButton的用法与Button在Activity中的用法基本一致。

5.按钮类控件RadioButton与RadioGroup
RadioButton(单选按钮)在Android平台上使用的也比较频繁,比如一些选项会用到单选按钮。它是一个圆形单选框双状态按钮,可以选择或不选择。在RadioButton没有被用户选中时,用户通过单击来选中它,但是,在被选中后,无法通过单击取消选中。
RadioGroup是单选组合框,用于将RadioButton框起来。在多个RadioButton被RadioGroup包含的情况下,同一时刻只可以选择一个RadioButton,并用setOnCheckedChangeListener来对RadioGroup进行监听。
下面介绍RadioGroup的常用属性,其中包括RadioButton:

<RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        //设置RadioButton的排列方式,分为水平排列horizontal与垂直排列vertical
        android:orientation="horizontal" >
           <RadioButton 
               android:id="@+id/rd1"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               //设置单选后紧跟的文本提示文字
               android:text="北京"
               //设置文字的大小
               android:textSize="30sp"
               //设置文字的颜色
               android:textColor="#0000FF"
               //字体格式
               android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
                />
           <RadioButton 
               android:id="@+id/rd2"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:textSize="30sp"
               android:text="上海" />
      </RadioGroup>

下面给出在Activity中用setOnCheckedChangeListener来对RadioGroup进行监听的代码,要注意RadioGroup中的RadioButton也都是需要声明和通过空间的id来得到代表控件的对象。

public class MainActivity extends Activity{
    ////对控件对象进行声明 
    private TextView textView;
    private RadioGroup radiogroup; 
    private RadioButton radiobutton1; 
    private RadioButton radiobutton2;  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //通过控件的ID来得到代表控件的对象 
        textView = (TextView) findViewById(R.id.text_view);
        radiogroup = (RadioGroup) findViewById(R.id.radio_group);
        radiobutton1 = (RadioButton) findViewById(R.id.rd1);
        radiobutton2 = (RadioButton) findViewById(R.id.rd2);

        //调用setOnCheckedChangeListener来对RadioGroup进行监听的代码
        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(checkedId == radiobutton1.getId()){
                    textView.setText("北京");
                }else if(checkedId == radiobutton2.getId()){
                    textView.setText("上海");
                }
            }
        });
    }   
}

6.按钮类控件CheckBox
CheckBox(复选按钮),顾名思义就是可以进行多选的按钮,默认以矩形表示。和RadioButton相同,它也有选中和不选中两种状态。我们可以先在布局文件中定义多选按钮,然后对没一个多选按钮进行事件监听setOnCheckedChangeListener,通过isChecked来判断选项是否被选中,做出相应事件响应。
下面给出CheckBox在布局文件中的常用属性以及用法:

CheckBox 
    android:id="@+id/cb1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    //设置复选按钮后紧跟的文本提示文字
    android:text="北京"
    //设置文字的大小
    android:textSize="30sp"
    //设置文字的颜色
    android:textColor="#0000FF"
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal/>
<CheckBox 
    android:id="@+id/cb2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="上海"
    android:textSize="30sp"
    android:textColor="#0000FF"/>

在Activity中调用的代码如下:

public class MainActivity extends Activity{
    ////对控件对象进行声明 
    private TextView textView;
    private CheckBox checkbox1;
    private CheckBox checkbox2; 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //通过控件的ID来得到代表控件的对象 
        textView = (TextView) findViewById(R.id.text_view);
        checkbox1 = (CheckBox) findViewById(R.id.cb1);
        checkbox2 = (CheckBox) findViewById(R.id.cb2);

        //为第一个 CheckBox 注册监听
        checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                //如果第一个 CheckBox 被选中
                if(isChecked == true){
                    textView.setText("CheckBox选中北京");
                }
            }
        });

        //为第二个 CheckBox 注册监听
        checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                //如果第二个 CheckBox 被选中
                if(isChecked == true){
                    textView.setText("CheckBox选中上海");
                }
            }
        });
    }   
}

7.图片控件ImageView
ImageView是一个图片控件,负责显示图片,图片的来源可以是系统提供的资源文件,也可以是Drawable对象,相对来说,图片控件还是很好掌握的,因为前面有说过ImageButton,很多属性都是类似的
下面直接给出布局中的属性:

<ImageView
//控件id
android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx

//宽度与高度
android:layout_width="wrap_content"   //wrap_content或者match_parent
android:layout_height="wrap_content"  //wrap_content或者match_parent

//此外,可以具体设置高度和宽度显示的像素,不过这样设置如果图片尺寸大于设置的显示的尺寸,则图片是显示不全的,这是可以配合android:scaleType属性。
android:layout_width="200dp"
android:layout_height="200dp" 

//把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageButton.
android:scaleType="fitXY"

//其他的关于android:scaleType的参数解释,也可以参考下面的直观图
//android:scaleType="center"  在视图中心显示图片,并且不缩放图片
//android:scaleType="centercrop"  按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
//android:scaleType="centerinside"  按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
//android:scaleType="fitcenter" 按比例缩放图片到视图的最小边,居中显示
//android:scaleType="fitend" 按比例缩放图片到视图的最小边,显示在视图的下部分位置
//android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
//android:scaleType="matrix" 用矩阵来绘制

//图片来源,需要将图片复制放到res/drawable文件夹里面,引用的时候不需要写图片的后缀
android:src ="@drawable/beautiful"> 

在Activity中因为不需要设置监听,比较简单,用法略过。

8.进度条控件ProgressBar
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据,运行程序,就会看到屏幕上有一个圆形进度条在旋转。
在布局xml文件中的用法非常简单:

<ProgressBar 
    android:id="@+id/pb"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    //默认是圆形进度条,可以知道样式设置为水平进度条
    style="?android:attr/progressBarStyleHorizontal"/>
    //指定成水平进度条后,我们还可以通过 android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度
    android:max="100"

至此,关于Android的常用控件都已经讲了一遍。

猜你喜欢

转载自blog.csdn.net/a18166064736/article/details/80569248
今日推荐