安卓学习基础篇——高级用户界面设计(一)

本文详细介绍了Android开发中常用的高级控件,包括自动完成文本、进度条、拖动条、星级评分条等,并探讨了选项卡、图像切换器、网格视图、画廊视图的应用与配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高级控件

自动完成文本(AutoCompleteTextView)

	自动完成文本用于实现允许用户输入一定字符后,显示一个下拉菜单,提供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。AutoCompleteTextView继承自EditText,所以它支持EditText提供的属性,同时 ,它还支持其他一些属性。

进度条(ProgressBar)

	当一个应用程序在后台执行时,前台界面不会有任何信息,这时用户根本不知道程序是否在执行以及执行进度等,因此需要使用进度条来提示程序执行的进度。在Android中,进度条用于向用户显示某个耗时操作完成的百分比。
	进度条支持的属性:
	1.android:max   用于设置进度条的最大值。
	2.andorid:progress   用于指定进度条已完成的进度值
	3.android:progressDrawable   用于设置进度条轨道的绘制形式
	除了以上的属性之外,进度条组件还提供了下面两个常用方法用于操作进度。
	1.setProgress(int progress)方法:用于设置进度完成的百分比
	2.incrementProgress(int diff)方法:用于设置进度条的进度增加或减少。当参数值为正数时,表示进度增加;为负数时,表示进度减少。
如下为一个xml文件中的一个进度条例子:
	<ProgressBar 
        	android:id="@+id/progress_bar"
       	 	android:layout_width="fill_parent"
        	android:layout_height="wrap_content"
        	android:max="100"
        	style="@android:style/Widget.ProgressBar.Horizontal"/>
其中style属性用来指定进度条的风格,一下为一些常用的style属性值:

style="@android:style/Widget.ProgressBar.Small"        //小型圆形进度条 style="@android:style/Widget.ProgressBar.Inverse"        //中型圆形进度条 style="@android:style/Widget.ProgressBar.Large"       //大型圆形进度条 style="@android:style/Widget.ProgressBar.Large.Inverse"  //大型圆形进度条 style="@android:style/Widget.ProgressBar.Horizontal"     //水平进度条 style="@android:style/Widget.ProgressBar.Small.Inverse"   //小型圆形进度条 其中,带有Inverse参数和不带有Inverse参数的style属性区别在于:当进度条控件所在的界面背景颜色为白色时,需要使用带有Inverse参数的style属性,否则进度条将看不见。

拖动条和星级评分条

拖动条(Seek Bar)

	拖动条与进度条类似,所不同的是,拖动条允许用户拖动滑块来改变值,通常用于实现对某种数值的调节。例如,调节图片的透明度或是音量等。
可以在xml文件中添加一个<SeekBar>标签来添加一个拖动条。
	SeekBar组件允许用户改变拖动滑块的外观,这可以使用android:thumb属性实现,该属性的属性值为一个Drawable对象,该Drawable对象将作为自定义滑块。
	由于拖动条可以被用户控制,所以需要为其添加OnSeekBarChangeListener监听器。

星级评分条(RatingBar)

xml属性如下:
android:isIndicator 用于指定该星级评分条是否允许用户改变,true为不允许改变
android:numStars 用于指定该星级评分条总共有几个星星
android:rating 用于指定该星级评分条默认的星级
android:stepSize 用于指定每次最少需要改变多少个星级,默认为0.5个
除了如上几个属性,星级评分条还提供了如下3个比较常用的方法:
getRating()方法:用于获取登记,表示选中了几颗星;
getStepSize()方法:用于获取每次最少要改变多少个星级;
getProgress()方法:用于获取进度,获取到的值为getRating()方法返回值与getStepSize()方法返回值之积;

选项卡

选项卡主要由TabHost、TabWidget和FrameLayout3个组件组成,用于实现一个多标签页的用户界面,通过它可以将一个复杂的对话框分割成若干个标签页,实现对信息的分类显示和管理。
在Android中实现选项卡的一般步骤如下:
1.在布局文件中添加选项卡所需的TabHost、TabWidget和FrameLayout组件;
2.编写各标签中要显示内容所对应的XML布局文件;
3.在Activity中,获取并初始化TabHost组件;
4.为TabHost对象添加标签页;
其中第一步在xml文件中添加选项卡的步骤如下:
1.首先添加一个TabHost组件,并在该组件下添加布局管理器;
2.在布局管理器中添加TabWidget组件作为标签组和一个FrameLayout组件作为标签内容;示例代码如下:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" >

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <TabWidget 
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
        </FrameLayout>
    </LinearLayout>

</TabHost>
其中应用xml布局文件添加选项卡时,必须使用系统的id来为各组件指定id属性,否则将出现异常。

杂记:对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 
首先我们要知道,什么是已经被载入的layout,什么是还没有载入的.我们启动一个应用,与入口Activity相关的layout{常见的是main.xml}就是被载入的,即在Oncreate()中的.而其他的layout是没有被载入的.就要动态载入了或通过另一个activity.
在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件.

图像切换器(ImageSwitch)

用于实现类似Windows操作系统下的图片查看器。下一站、上一张的功能。在使用ImageSwtich时,必须实现ViewSwitch.ViewFactory接口,并通过makeView()方法来创建用于显示图片的ImageView。makeView()方法将返回一个显示图片的ImageView。在使用图片切换器时,还有一个方法非常重要,就是setImageResource()方法,该方法用于指定要在ImageSwitch中显示的图片资源。

网格视图(GridView)

网格视图(GridView)是按照行、列分布的方式来显示多个组件,通常用于显示图片或是图标等,在使用网格视图时,首先要在屏幕上添加GridView组件,通常用<GridView>在xml文件中标记。
ridView支持的xml属性如下:
1.andorid:columnWidth 用于设置列的宽度
2.android:gravity 用于设置对齐方式
3.android:horizontalSpacing 用于设置各元素之间的水平距离
4.android:numColumns 用于设置列数,其属性值通常为大于1的值,如果只有一列,那么最好使用ListView实现
5.android:stretchMode 用于设置拉伸模式,其中属性值可以是none(不拉伸),spacingWidth(仅拉伸元素之间的距离),colunmnWidth(仅拉伸表格元素本身)或spacingWidthUniform(表格元素本身、元素之间的间距一起拉伸)
6.android:verticalSpacing 用于设置各元素之间的垂直距离
GridView与ListView类似,都需要通过Adapter来提供要显示的数据。在使用GridView组件时,通常使用SimpleAdapter或者BaseAdapter类为GridView组件提供数据。

画廊视图(Gallery)

画廊视图表示,能够按照水平方向显示内容,并且可以用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可以响应事件显示信息。
Gallery支持的xml属性如下:
1.android:animationDuration 用于设置列表项切换时的动画持续时间
2.android:gravity 用于设置对齐方式
3.android:spacing 用于设置列表项之间的间距
4.android:unselectedAlpha 用于设置没有选中的列表项的透明度
使用画廊视图也要使用Adapter提供要显示的数据。通常使用BaseAdapter类为Gallery提供数据。




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值