UI组件分类

android ui组件平台 安卓常用ui组件_数据

常见UI组件

TextView及其子类
 Textview文本框显示文本内容的文本区域,不可编辑。
 EditText编辑框显示文本内容,可编辑修改
 Button按钮
 RadioButton:单选按钮,一般和RadioGroup一起使用组成选项组
 CheckBox:复选按钮
 ToggleButton:状态开关按钮
 Switch:开关
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
        <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is TextView"/>
        <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is EditView"/>
        <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is Button"/>
        <RadioButton android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is RadioButton"/>
        <CheckBox android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is CheckBox"/>
        <ToggleButton android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is ToggleButton"/>
        <Switch android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is Switch"/>
</LinearLayout>

运行效果如下图

android ui组件平台 安卓常用ui组件_进度条_02

进度条

在Android中,提供了进度条,拖动条和星级评分条等进度条类组件。

  • ProgressBar进度条
  • 进度条可以动态地显示进度,避免用户死等的尴尬状态。用颜色填充表明进度(不允许用户拖动)
<ProgressBar	属性列表	>	</ProgressBar>
XML属性如下:
android:max	用于设置进度条的最大值
android:progress	指定进度条已完成的进度值
android:progressDrawable	进步条轨道的绘制形式
style属性能指定风格:
?android:attr/progressBarStyleHorizontal	细的长条水平进度条
?android:attr/progressBarStyleLarge(Small)	大(小)圆形进度条
@android:style/Widget.ProgressBar.Large(Small)	大(小)跳跃、旋转画面的进度条
  • SeekBar拖动条
  • 允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,亮度调节的底层就是它。
    由于拖动条可以被用户控制,需要添加OnSeekBarChangeListener监听器
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
	public void onStopTrackingTouch(SeekBar seekBar){
		//要执行的代码
	}
	public void onStartTrackingTouch(SeekBar seekBar){
		//要执行的代码
	}
	public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
		//要执行的代码,参数progress表示当前进度。
	}
)
  • RatingBar星级评分条
  • 允许用户通过拖动来改变进度,不过RatingBar通过星星来表示进度。
<RatingBar	属性列表>	</RatingBar>
XML属性:
android:isIndicator	指定星级评分条是否允许用户改变,true为不允许
android:numStars	总共有多少星
android:rating		默认星级
android:stepSize	每次最少改变多少星级
方法:
getRating():	获取等级
getStepSize():	获取每次改变最少的值
getProgress():	获取进度

效果如下图所示

android ui组件平台 安卓常用ui组件_数据_03

图像类组件

<ImageView	属性列表>	</ImageView>
XML属性:
android:adjustViewBounds	是否调整自己的边界保持长宽比
android:maxHieght			设置最大高度,需要上式属性值为true
android:maxWidth			设置最大宽度
android:src					所显示的Drawable对象的ID
android:tint				用于为图片着色

网格视图

<GridView	属性列表>	</GridView>
XML属性:
android:columnWidth			用于设置列的宽度
android:gravity				设置对齐方式
android:horizontalSpacing	设置各元素水平间距
android:numColumns			设置列数
android:verticleSpacing		设置垂直元素间距

通常使用Adapter类为GridView组件提供数据(XML只写一个GridView,数据由Adapter绑定)

• ArrayAdapter 数组适配器,将数组多个值封装成多个列表项.
• SmipleAdapter 简单适配器,将List集合多个值封装多个列表项.
• BaseAdapter 抽象类,继承它需要实现较多方法


下拉列表框Spinner

android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉列表(dropdown),如果不特别设置,为下拉列表。。
 android:entries:使用<string-array…/>资源配置数据源。
 android:prompt="@string/info" 指定下拉标题
 AdapterView.OnItemCLickListener:列表项被点击时触发。
 AdapterView.OnItemLongClickListener:列表项被长按时触发。
 AdapterView.OnItemSelectedListener:列表项被选择时触发。
<Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/spingarr"
android:spinnerMode="dialog"
></Spinner>

string.xml

<resources>
    <string name="app_name">HelloWorld</string>
    <string-array name="spingarr">
        <item>北京</item>
        <item>上海</item>
        <item>广州</item>
        <item>深圳</item>
    </string-array>
</resources>

如果需要在用户选择不同列表项后,执行相应的处理,则可以为该下拉列表添加OnItemSelectedListener事件监听器,用getItemAtPosition()方法获取选中的值,用Toast.makeText()获取值显示出来,代码如下

Spinner spinner = (Spinner)	findViewById(R.id.spinner);
	//创建监听事件.
	spinner.setOnItemSeletedListener(new AdapterView.OnItemSelectedListener(){
		public void OnItemSeleted(AdapterView<?> parent,View view,int position,long id){
			String result = parent.getItemAtPosition(postion).toString();	//获取选择的值
			Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();	//显示选中的值
		}
	});

运行结果

android ui组件平台 安卓常用ui组件_android_04


列表视图

Listview允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕原有的数据会滚动出屏幕
列表视图(ListView)是Android中最常用一种视图,它以垂直列表的形式列出需要显示的列表项(如联系人)

<ListView	属性列表>	</ListView>
android:divider	为列表视图设置分隔条,颜色分隔.
android:dividerHeight	分隔条的高度
android:entries			数组资源ListView指定列表项

既然ListView适用于展示大量数据,那么应该先将数据提供好。数据可以是数据库中,也可以是网上下载,这里我用的是数组,数组中的数据无法直接传递给ListView,因此需要借助适配器来完成。

private String[] data = {"Apple","Banana"};
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContenView(R.layout.activity_main);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.listview1,data);
		ListView listView = (ListView) findViewById(R.id.listView);
		listView.setAdapter(adapter);
	}