Android高级UI组件
- 进度条类组件
- 图像类组件
- 列表类组件
- 通用组件
一、进度条
用ProgressBar来标记。
1.Andorid提供了水平进度条、圆形进度条,不加设置默认为圆形进度条。
想展示实时进度:使用水平进度条
只想显示在加载:圆形进度条
2.属性:
①style来修改进度条的样式:特别注意无前缀andorid
style的属性值:
?android:attr/progressBarStyleHorizontal,细水平长条进度条
?android:attr/progressBarStyleSmall,小圆形进度条
?android:attr/progressBarStyleLarge,大圆形进度条
@android:style/Widget.ProgressBar.Horizontal,粗水平长条进度条
@android:style/Widget.ProgressBar.Large,旋转画面的大圆形进度条
@android:style/Widget.ProgressBar.Small,旋转画面的小圆形进度条
②android:max,设置最大值,属性值可为具体数值。
③android:progress,设置当前进度,属性值为具体数值
3.事件监听器
实现进度条的实时改变:需创建线程,在线程中循环获取耗时的进度,并更新进度。
在Android中不支持在主线程中更新UI组件,可以实例化一个Handler对象,即消息处理对象,通过发送消息来更新UI组件。、
对于耗时操作可通过一个线程来模拟
progressBar= (ProgressBar) findViewById(R.id.pg);
//消息处理
mHandler=new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what==0x111){
progressBar.setProgress(mProgress);
}
else
{
Toast.makeText(MainActivity.this, "耗时操作已完成", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
}
};
//创建一个线程,模拟耗时操作
new Thread(new Runnable() {
@Override
public void run() {
while(true)
{
mProgress=doWork();
Message m=new Message();
if(mProgress<100){
m.what=0x111;//耗时操作未完成,为自定义代码,一般以0x开头
mHandler.sendMessage(m);
}
else
{
m.what=0x110;//耗时操作已完成
mHandler.sendMessage(m);
break;
}
}
}
private int doWork()
{
mProgress+=Math.random()*10;
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
return mProgress;
}
}).start();//开始线程
}
二、拖动条
1.用SeekBar来标记。
2.为进度条的子类,具有进度条拥有的属性。
3.属性:
①android:thumb,修改拖动条的小点,属性值可为图片资源
三、星级评分条
用RatingBar标记,默认星星为灰色的
1.属性
①android:numStars,设置评分条的星星个数
②android:rating,属性值为数值,设置初始点亮个数
③android:stepSize,设置最小点亮星数。
④android:isIndicator,属性值为布尔类型,为true时,评分条只能看不能改
四、图像视图
用来显示图片,用ImageView来添加。
为图像组件,属性:
①android:src,显示图片
②设置缩放方式
android:scaleType=“fitXY” //把图片按照指定的大小在ImageView中显示,拉伸显示图片,不保持原比例,填满ImageView.
android:scaleType=“fitStart”//把原图按照比例放大缩小到ImageView的高度,显示在ImageView的start(前部/上部)
…
③设置最大宽度、高度:
android:adjustViewBounds=“true”//可设置…
android:maxWidth=“100dp”
android:maxHeight=“100dp”
④设置图片着色
android:tint,
扩展:只允许横屏模式,
则在manifests的activity后添加android:screenOrientation="landscape">
五、图像切换器
实现带动画效果的图片切换功能。
使用ImageSwitcher来添加。
使用Java代码来实现切换动画效果
ImageSwitcher imageSwitcher;
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,
android.R.anim.fade_out));//设置淡出
六、网格视图
按行列分布方式显示多个组件
用GridView添加网格视图。
要显示图片,要设置一个适配器(Adapter),适配器:连接后端数据与前端显示的接口,是数据和UI组件中的重要纽带。要添加适配器,要在Java文件中写代码
四个常用适配器:
ArrayAdapter,数组适配器,将数组的多个值包装成列表项,只能显示一行文字。
SmipleAdapter,把List的多个值包装成多个列表项。
SmipleCursorAdapter,将数据库的内容以列表的形式展示出来。
BaseAdapter,对各个列表项进行最大限度的定制。
属性:
android:numColumns,设置列数,属性值为数值或auto_fit(自动排列)。
七、下拉列表框
使用Spinner添加
属性:
android:entries,添加下拉列表项,属性值为数组资源。
下拉列表框可使用entries来设置或使用适配器来指定。