android学习笔记26:水平进度条
来源:互联网 发布:win10 windows server 编辑:程序博客网 时间:2024/06/06 12:49
通过进度条可以让用户知道程序的运行进度,同时也是一种交互手段,可以使用户觉得等待的时间并不是那么的长。使用进度条时,可以使用系统默认的样式,也可以通过XML文件自己指定样式。
自定义的滚动条样式
<?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><!-- 定义轨道的背景 --><item android:id="@android:id/background"android:drawable="@drawable/no" /><!-- 定义轨道上已完成部分的样式 --><item android:id="@android:id/progress"android:drawable="@drawable/ok" /></layer-list>
布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="任务完成的进度" /> <!-- 定义一个水平进度条 --> <ProgressBar android:id="@+id/bar" style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" /> <!-- 定义一个水平进度条,并改变轨道外观 --> <ProgressBar android:id="@+id/bar2" style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progressDrawable="@drawable/my_bar" /> <Button android:id="@+id/Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/start" /></LinearLayout>
点击启动按钮之后,启动一个新的线程来执行任务,再通过一个Handler来接收消息和更新滚动条
public class ProgressBarTest extends Activity{//该程序模拟填充长度为100的数组private int[] data = new int[100];int hasData = 0;//记录ProgressBar的完成进度int status = 0;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);final ProgressBar bar = (ProgressBar) findViewById(R.id.bar);final ProgressBar bar2 = (ProgressBar) findViewById(R.id.bar2);//创建一个负责更新的进度的Handlerfinal Handler mHandler = new Handler(){@Overridepublic void handleMessage(Message msg){//表明消息是由该程序发送的。if (msg.what == 0x111){bar.setProgress(status);bar2.setProgress(status);}}};final Button startButton = (Button)findViewById(R.id.Button);startButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubhasData = 0;status = 0;//启动线程来执行任务new Thread(){public void run(){while (status < 100){// 获取耗时操作的完成百分比status = doWork();// 发送消息到HandlerMessage m = new Message();m.what = 0x111;// 发送消息mHandler.sendMessage(m);}}}.start();}});}//模拟一个耗时的操作。public int doWork(){//为数组元素赋值data[hasData++] = (int)(Math.random() * 100);try{Thread.sleep(100);}catch (InterruptedException e){e.printStackTrace();}return hasData;}}
- android学习笔记26:水平进度条
- android水平进度条布局
- android 自定义水平进度条
- Android--水平进度条对话框
- Android自定义水平进度条
- 安卓学习笔记---ProgressBar水平进度条的颜色设置
- Android学习札记7:ProgressBar水平进度条的颜色设置
- Android学习笔记(十六)进度条
- Android学习笔记之进度条
- Android自定义水平进度条控件
- Android 螺旋水平进度条 progressbar
- Android自定义水平渐变进度条
- Android学习笔记04:Android 缓冲进度条或加载进度条
- Android 学习笔记(十六):Widget-进度条
- android学习笔记32:标题栏进度条
- Android学习笔记之progressBar(进度条)
- Android 学习笔记(十六):Widget-进度条
- Android应用开发学习笔记之进度条
- Codeforces Round #100 (Div. 2) A - New Year Table
- 问题列表
- 用rand()和srand()产生为随机数的方法总结
- C++各大有名库的介绍——网络通信
- XCode 4: Manual downloading of Apple documents
- android学习笔记26:水平进度条
- 备注
- Android 导入第三方的包
- 图像处理基本算法-形态学
- Java HotSpot Client VM 和 Java HotSpot Server VM的配置
- 基于U盘的linux启动盘的制作
- 虚拟主机禁用php fsockopen的解决方法
- 网络协议栈2:socket函数
- /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied