Android App开发从零开始之基础篇—布局和控件(二)— 控件

来源:互联网 发布:淘宝账号信息查询 编辑:程序博客网 时间:2024/05/18 19:21

布局和控件(二)— 控件

    前言:布局可以看做是用来装载显示信息的组件,并能够使信息按照要求进行排列显示的容器,但是仅有布局还是不够的,真正用来加载信息的是控件。本篇就来认识一下Android中的一些控件。

一、TextView 文本显示控件

    TextView是Android中用来显示文本信息的控件。除了通用属性,它主要常用属性还有:

    (1)text:设置显示的文本内容。如:android:text="Hello World" 代码中:textView.setText("HelloWorld")

    (2)textSize:设置字体大小,单位sp。如:android:textSize="14sp“ 代码中:textView.setTextSize(14)

    (3)textColor:设置字体颜色。如:android:textColor="#ffee0000"  颜色值以”#“开头,8个16进制数组成。前两位表示透明度,前两位可省略,表示完全不透明的”ff“。

      代码中:textView.setTextColor(getResources().getColor(R.color.red));  要在代码中设置字体颜色,需要在资源文件夹中的colors.xml中先定义颜色值,然后使用  getResources().getColor(R.color.xxx)的方式获取颜色值。

    (4)textAppearance:设置字体样式。如:android:textAppearance="?android:attr/textAppearanceLarge"  引用系统自带的大号字体样式。

二、EditText 文本输入控件

    EditText用来提供用户文本输入操作,如登录时的账号密码输入,聊天框的信息输入等等。它的常用属性有:

    (1)text:设置显示的文本内容。如:android:text="Hello World"

    (2)textSize:设置字体大小,单位sp。如:android:textSize="14sp“

    (3)textColor:设置字体颜色。如:android:textColor="#ffee0000"  颜色值以”#“开头,8个16进制数组成。前两位表示透明度,前两位可省略,表示完全不透明的”ff“。

    (4)textAppearance:设置字体样式。如:android:textAppearance="?android:attr/textAppearanceLarge" 引用系统自带的大号字体样式。

    (5)hint:设置默认的信息。如:android:hint="账号"当设置时,默认会显示出所设置的文本内容,当用户开始输入信息时,默认显示的内容会自动消失。

三、Button 按钮控件

    Button控件是Android中的按钮控件,用于提供界面上的按钮功能。常用的属性有:

    (1)text:设置显示的文本内容。如:android:text="Hello World"

    (2)textSize:设置字体大小,单位sp。如:android:textSize="14sp“

    (3)textColor:设置字体颜色。如:android:textColor="#ffee0000"  颜色值以”#“开头,8个16进制数组成。前两位表示透明度,前两位可省略,表示完全不透明的”ff“。

    (4)textAppearance:设置字体样式。如:android:textAppearance="?android:attr/textAppearanceLarge" 引用系统自带的大号字体样式。

    (5)onClick:在xml文件中(布局文件)设置按钮点击时,该点击事件所对应的代码函数。如android:onClick="btnClick"其中,btnClick方法的定义如下:

public void btnClick(View view){ //要以这种方式关联onClick事件,括号中的View参数必须要写 Log.e("btnClick: oncLICK" ,"btnClick: oncLICK");}

四、ImageView 图片显示控件

    ImageView是用来加载显示图片的控件。常用的属性有:

    (1)src:设置所显示的图片(前景图片),如:android:src="@mipmap/ic_launcher"  代码中:imageView.setImageResource(R.mipmap.ic_launcher)  注意:这里用了mipmap,这是Android Studio下才有的,对应Eclipse下的drawable。

    (2)scaleType:设置图片的拉伸模式,如:android:scaleType="fitXY"该属性仅对src属性设置的图片有效,对background无效。其中几个属性值的意思为:

        center:始终显示图片正中间的内容。显示的范围根据控件的宽高大小进行缩放。

        centerCrop:以左边中点为起点,根据控件的宽高比例,截取图片的同样比例大小(注意是比例)的内容(水平方向就向右扩展,垂直方向上下同时扩展)显示。如果图片的宽高小于控件宽高,则延伸放大。

        centerInside:图片始终以全图在控件中居中显示。图片会根据控件的大小进行缩放,但最大不会超过图片的原始尺寸。

        fitStart、fitCenter、fitEnd:计算图片的宽高比(宽除以高)和控件的宽高比(宽除以高),当控件的宽高比的值大于图片的宽高比的值时,将图片的高度等于控件的高度,图片的宽度按照原比例进行缩放,同时,根据所设置的fitStart、fitCenter、fitEnd,图片分别对应在控件中靠左、居中、靠右对齐;当控件宽高比小于图片宽高比时,图片的宽度等于控件的宽度,图片的高度按照原比例缩放,同时根据设置的fitStart、fitCenter、fitEnd,图片分别对应在控件中靠上、居中、靠下对齐。

        fitXY:以图片的中心为焦点,整张图片根据控件的大小进行缩放。图片可能出现变形、模糊,例如当图片尺寸小于控件尺寸时,大家知道,将较小的图片强行放大时,图片是会变形模糊的。

五、CheckBox 多选框控件

    项目开发中经常会遇到要实现多选功能的情况,如选择个人兴趣爱好。当遇到这种情况时,可以使用多个Checkbox来进行实现,一个CheckBox对应一个选项。CheckBox的基本使用非常简单,在布局文件中,主要设置下列属性:

    (1)text:设置选项的文本内容。如android:text="编程"

    (2)checked:设置选项的默认选中状态。属性值:true(表示默认选中)/false(表示默认未选中)。如android:checked="true"

    除了在布局文件中通过属性简单设置,CheckBox更多的是在代码文件中根据实际的业务情景通过代码来更改以及获取选中状态,如在代码中:

    checkBox.setChecked(true)将选项设置为选中状态;

    checkBox.isChecked()获取选项的选中状态;

    checkBox.setOnCheckedChangeListener()设置选中状态改变的事件监听。

六、RadioButton和RadiioGroup 单选框控件

    一个RadioButton可以作为一组单选项中的一个选项使用,但是,要在一组选项中实现单选功能,必须将所有的RadioButton放在一个RadioGroup里面。同CheckBox类似,在布局文件中,可以简单的设置RadioButton的下列属性来初始化控件状态:

    (1)text:设置选项的文本内容。如android:text="编程"

    (2)checked:设置选项的默认选中状态。属性值:true(表示默认选中)/false(表示默认未选中)。如 android:checked="true"。这里需要注意,如果你是对每个RadioButton都设置了checked属性为true,那么每个RadioButton都会呈现出选中状态。通常只需要设置其中一个,表示默认选中该项,或者全部都不设置(即默认为false),表示默认全都不选中。

    需要特别注意的是,如果不把RadioButton放入RadioGroup中,那么当你在运行起来的软件中点击各项时,是达不到单选效果的,因为此时你是在对于每个RadioButton来说都是一个单独独立的控件,并没有与其他RadioButton有任何关联。因此,必须将所有相关的RadioButton放入RadioGroup中,使它们成为一个相关联的选项组,才能实现单选功能。并且,对于放入RadioGroup中的一组RadioButton,可以在代码中获取它们的状态。例如:

    (1)获取选项组中被选中的RadioButton的id:int checkedId=radioGroup.getCheckedRadioButtonId();注意:这个方法是由RadioGroup进行调用。

    (2)通过(1)中获取的id查找选中的RadioButton:RadioButton checkedBtn = (RadioButton)findViewById(checkedId);

    (3)对选中的RadioButton进行操作,如修改文本信息:checkedBtn.setText("修改文本");

七、ProgressBar/SeekBar 进度条控件

    Android中提供了两种类型的进度条控件,一种是只能用来显示进度信息(如下载进度)的进度条ProgressBar,另一种是可以进行拖拽(如音乐、视频播放器的进度条)的进度条SeekBar。

    (1)ProgressBar:ProgressBar又分为两种

     水平进度条:水平进度条可以用来显示一些事件的处理进度,如下载进度等。要使用水平进度条显示进度,可以通过设置它的几个属性:

    (a)max:设置进度条的进度总值。如 android:max="200" 表示设置进度条的进度值最大为200。代码中:progressBar.setMax(200)

    (b)progress:设置进度条的当前进度值。如 android:progress="100" 表示设置进度条的当前进度值为100。代码中:progressBar.setProgress(100)

    (c)secondaryProgress:设置进度条的第二进度值。如android:secondaryProgress="150" 表示设置进度条的第二进度值为150。代码中: 

      progressBar.setSecondaryProgress(150)

     关于第二进度,举个例子来说就是有时候我们看视频的时候,会看到在实际播放进度之下,会有一条颜色比较浅,走的比较快的进度条。第二进度就是可以作为类似此用的进度。

    圆形进度条:圆形进度条通常情况下常用于页面加载等待过程中的一个显示,用以告知用户页面正在加载中。圆形进度条的基本使用并无太多设置,直接在页面中放置一个进度条,设置好宽高尺寸即可。当然也通过自定义控件设计出具有更多样式和功能的进度条,自定义控件将在以后进行介绍。

    (2)SeekBar:SeekBar与水平进度条一样可以显示进度,因此它也具有max、progress、secondaryProgress这些属性,并且用法与水平进度条一样。所不同的是,SeekBar具有拖拽的功能,即可以通过拖拽来控制进度,比如快进或者后退。既然可以拖拽,那么就需要对拖拽事件进行监听,以便对相应的动作进行处理。对拖拽事件的监听可以用seekBar.setOnSeekBarChangeListener()该方法有传入一个SeekBar.OnSeekBarChangListener监听器并实现三个方法:

    onProgressChanged:当进度条的进度值改变时会触发此方法

    onStartTrackingTouch:当按下拖拽按钮时触发此方法

    onStopTrackingTouch:当释放拖拽按钮时触发此方法。

八、RatingBar 评分进度条

    很多软件都有评分的功能,比较常看到的是用星星的数量来代表分数。Android中也为我们提供了这样一个控件。RatingBar的使用方法主要是设置属性:

    (1)numStars:设置星星总数,如android:numStars="5" 表示设置RatingBar总共有5颗星,放到应用场景中可以表示总分为5分。代码中: 

        ratingBar.setNumStars(5)

    (2)rating:设置星星选中的个数,如android:rating="2" 表示选中2个星星,可表示为评分为2分。代码中:ratingBar.setRating(2)


   后记:本文主要简单介绍了Android App开发中一些常见的控件的基本使用。灵活的使用这些控件组合,基本可以适应各种简单的界面和功能需求。当然,实际开发中经常需要修改控件的样式,使用自定义控件,以使开发出的界面符合UI设计的要求,并且显得美观。这些属于中高级的知识,将在今后的学习中继续记录介绍。


0 0