2011-4-24 android ProgressBar的使用方法
progressbar的用法

progressbar的用法ProgressBar 是 Android 平台中常用的一个视图控件,它用于显示一个表示进度的动态条,可以用于展示下载、上传、转换等操作的进度。
ProgressBar 支持多种样式,如水平进度条、圆形进度条等,而且还可以自定义样式,非常灵活和实用。
本文将介绍 ProgressBar 控件的用法和实例。
一、ProgressBar 控件的属性ProgressBar 控件最常用的属性如下表所示:| 属性名称 | 描述 | | --- | --- | | android:id | 控件的唯一 id | | android:layout_width | 控件的宽度 | | android:layout_height | 控件的高度 | | android:layout_margin | 控件的外边距 | |android:max | 进度条的最大值 | | android:progress | 进度条的当前值 | | android:progressDrawable | 进度条的背景 | | android:secondaryProgress | 二级进度的当前值 | | android:indeterminate | 是否在不知道进度时显示一个不确定的进度条 | |android:indeterminateDrawable | 不确定进度条的图象资源 | | android:indeterminateDuration | 不确定进度条的动画时长 | | android:minWidth | 进度条的最小宽度 | | android:minHeight | 进度条的最小高度 | | android:visibility | 控件的可见性 |ProgressBar 的属性可用于配置进度条的样式和行为,下面将介绍其中一些重要的属性。
1. max 和 progressmax 属性用于设置进度条的最大值,progress 属性用于设置进度条的当前进度值。
Android中的常用控件之进度条(ProgressBar)

Android中的常⽤控件之进度条(ProgressBar)ProgressBar的常⽤属性:style,进度条的样式,默认为圆形,⽤style="?android:attr/progressBarStyleHorizontal"可以将进度条设为条状;android:progress,进度条当前所处进度;android:max,进度条总进度。
⽤线程实现进度条的注意事项:不能在主线程中执⾏耗时的操作,只能在⼦线程中操作;另外,在⼦线程中不能操作主线程中的控件(ProgressBar除外):修改后MainActivity.java⾥的代码如下:public class MainActivity extends AppCompatActivity {private int p=0;//当前进度private ProgressBar pb_main_download;//进度条private TextView tv_main_desc;//显⽰⽂本的控件private MyHandler myHandler=new MyHandler();//新写的Handler类public class MyHandler extends Handler{@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);int code=msg.what;//接受处理码switch (code){case 1:p++;pb_main_download.setProgress(p);//给进度条的当前进度赋值tv_main_desc.setText(p+"%");//显⽰当前进度为多少break;}}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);//根据ID找到进度条pb_main_download=findViewById(R.id.pb_main_download);//根据ID找到显⽰⽂本的控件tv_main_desc=findViewById(_main_desc);}//点击Download按钮所调⽤的⽅法public void download(View view) {if(0==p){//如果当前进度为0new myThread().start();//开启线程}}public class myThread extends Thread{@Overridepublic void run() {super.run();while(true){try {Thread.sleep(100);//使线程休眠0.1秒} catch (InterruptedException e) {e.printStackTrace();}if(p==100){//当前进度等于总进度时退出循环p=0;break;}Message msg=new Message();msg.what=1;myHandler.sendMessage(msg);//发送处理码}}}}。
Android 控件之ProgressBar进度条

Android 控件之ProgressBar进度条下面详细介绍ProgressBar一、说明在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。
一个进度条也可不确定其进度。
在不确定模式下,进度条显示循环动画。
这种模式常用于应用程序使用任务的长度是未知的。
二、XML重要属性android:progressBarStyl e:默认进度条样式android:progressBarStyl eHorizontal:水平样式三、重要方法getMax():返回这个进度条的范围的上限getProgress():返回进度getSecondaryProgress():返回次要进度incrementProgressBy(int diff):指定增加的进度isIndeterminate():指示进度条是否在不确定模式下setIndeterminate(bool ean indeterminate):设置不确定模式下setVisibility(int v):设置该进度条是否可视四、重要事件onSizeChanged(int w, int h, int ol dw, int ol dh):当进度值改变时引发此事件五、实例1.布局文件复制内容到剪贴板代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><ProgressBar android:id="@+id/progress_horizontal"styl e="?android:attr/progressBarStyl eHorizontal"android:layout_width="200dip"android:layout_height="wrap_content"android:max="100"android:progress="50"android:secondaryProgress="75" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="默认进度条" /><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><Button android:id="@+id/d ecrease"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="减少" /><Button android:id="@+id/increase"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="增加" /></LinearLayout><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="自定义进度条" /><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><Button android:id="@+id/d ecrease_secondary" android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第二减少" /><Button android:id="@+id/increase_secondary" android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第二增加" /></LinearLayout></LinearLayout>2.Java代码复制内容到剪贴板代码:package wjq.WidgetDemo;import android.app.Activity;import android.os.Bundl e;import android.view.View;import android.view.Wind ow;import android.widget.Button;import android.widget.ProgressBar;public class ProgressBarDemo extends Activity {/* (non-Javadoc)* @see android.app.Activity#onCreate(android.os.Bundl e) */@Overrid eprotected void onCreate(Bundl e savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);requestWindowFeature(Wind ow.FEATURE_PROGRESS);setContentView(yout.probarpage);setProgressBarVisibility(true);final ProgressBar progressHorizontal = (ProgressBar) findViewById(R.id.progress_horizontal); setProgress(progressHorizontal.getProgress() * 100);setSecondaryProgress(progressHorizontal.getSecondaryProgress() * 100);Button button = (Button) findViewById(R.id.increase);button.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {progressHorizontal.incrementProgressBy(1);// Titl e progress is in range 0..10000setProgress(100 * progressHorizontal.getProgress());}});button = (Button) findViewById(R.id.decrease);button.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {progressHorizontal.incrementProgressBy(-1);// Titl e progress is in range 0..10000setProgress(100 * progressHorizontal.getProgress());}});button = (Button) findViewById(R.id.increase_secondary);button.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {progressHorizontal.incrementSecondaryProgressBy(1);// Titl e progress is in range 0..10000setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());}});button = (Button) findViewById(R.id.decrease_secondary);button.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {progressHorizontal.incrementSecondaryProgressBy(-1);// Titl e progress is in range 0..10000setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());}});}来源:清源教育。
Android开发之进度条ProgressBar

Android开发之进度条ProgressBar说明ProgressBar⼀般⽤于显⽰⼀个过程,例如数据加载过程,⽂件下载进度,⾳乐播放进度等。
默认形式ProgressBar默认⽅式下,ProgressBar显⽰为圆形进度,循环转圈,不显⽰具体的进度值,控制其显隐藏即可,如下默认适⽤于界⾯加载//xml中<ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content" />//代码中控制显隐藏mProgressBar = (ProgressBar) findViewById(R.id.progress_bar_main);mProgressBar.setVisibility(View.VISIBLE);横向ProgressBar横向带进度的进度条,通过设置ProgressBar的Style为style="?android:attr/progressBarStyleHorizontal"image.pngmax属性指定进度条总进度值,progress设置当前进度值,也可以说是初始进度值//xml中<ProgressBarandroid:id="@+id/progress_bar_h"style="?android:attr/progressBarStyleHorizontal"android:layout_width="85dp"android:layout_height="10dp"android:layout_gravity="center"android:max="100"android:progress="50"/>设进度条背景系统⾃带的进度条的颜⾊⽐较单调,实际开发中使⽤较少,可以⾃定义进度条背景,新建⼀个progressbar_bg.xml⽂件<?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="/apk/res/android"><!-- 设置背景⾊ --><item android:id="@android:id/background"android:drawable="@mipmap/feed_grow_progress_bar"></item><!-- 设置进度条颜⾊ --><item android:id="@android:id/progress"><clip><shape><gradientandroid:endColor="#fff000"android:startColor="#fff000" /></shape></clip></item></layer-list>gradient可以设置进度条的渐变⾊, android:endColor和 android:startColor可以设置渐变开始和结束的颜⾊。
Android编程实现自定义ProgressBar样式示例(背景色及一级、二级进度条颜色)

Android编程实现⾃定义ProgressBar样式⽰例(背景⾊及⼀级、⼆级进度条颜⾊)本⽂实例讲述了Android编程实现⾃定义ProgressBar样式。
分享给⼤家供⼤家参考,具体如下:效果图如下,本例中设置了第⼀级进度条和第⼆级进度条。
样式资源:progressbar_bg.xml,放在drawable⽂件夹下:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="/apk/res/android"><!--3个层的顺序即为显⽰时的叠加顺序--><!--背景⾊--><item android:id="@android:id/background"><shape><corners android:radius="5dip" /><solid android:color="#CCCCCC" /></shape></item><!--⼆级进度条的颜⾊--><item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="5dip" /><solid android:color="#88F56100" /></shape></clip></item><!--⼀级进度条的颜⾊,也可以直接替换成图⽚--><item android:id="@android:id/progress"><clip><shape><corners android:radius="5dip" /><solid android:color="#F56100" /></shape></clip></item></layer-list>布局代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><ProgressBarandroid:id="@+id/progress_bar"style="?android:attr/progressBarStyleHorizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="100dp"android:minHeight="20dp"android:padding="10dp"android:progressDrawable="@drawable/progressbar_bg" /></LinearLayout>更多关于Android相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家Android程序设计有所帮助。
Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)

Android⾃定义进度条-带⽂本(⽂字进度)的⽔平进度条(ProgressBar)⽔平进度条,显⽰进度的⽂本随着进度⽽移动。
效果如下,截的静态图。
代码如下 TextProgressBar.javapublic class TextProgressBar extends ProgressBar {private Paint mPaint;private String text;private float rate;public TextProgressBar(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubinitView();}public TextProgressBar(Context context) {super(context);initView();}private void initView() {mPaint = new Paint();mPaint.setAntiAlias(true);mPaint.setColor(Color.BLUE);}@Overridepublic synchronized void setProgress(int progress) {setText(progress);super.setProgress(progress);}private void setText(int progress) {rate = progress * 1.0f / this.getMax();int i = (int) (rate * 100);this.text = String.valueOf(i) + "%";}@Overrideprotected synchronized void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);Rect rect = new Rect();mPaint.getTextBounds(text, 0, this.text.length(), rect);// int x = (getWidth()/2) - rect.centerX();// int y = (getHeight()/2) - rect.centerY();int x = (int) (getWidth() * rate);if (x == getWidth()) {// 如果为百分之百则在左边绘制。
android进度条、滑动条和评分控件

android进度条、滑动条和评分控件所谓进度条、滑动条和评分控件,在⼿机应⽤中,相信你见过加载游戏时、更新应⽤时等情况,屏幕出现⼀条进度栏,这⾥称之为进度条;当你调节⾳量时出现的这⾥即称作滑动条;⽽评分控件,当你在淘宝给卖家评价时出现的类似5星评价,这⾥即称作评分控件,下⾯将分别详细说明这三种控件的基础使⽤⽅法。
⼀、ProgressBar进度条控件1. ⾸先ProgressBar进度条给出了两种样式,分别是progressBarStyleLarge和progressBarStyleHorizontal,此次主要以progressBarStyleHorizontal⽔平进度条为例讲解,可在视图布局Form Widgets中找到,其布局代码和布局演⽰⽰例如下。
2.ProgressBar进度条需要创建⼀个继承AsyncTask抽象类的Activity,并重写doInBackground和onProgressUpdate⽅法,来实现进度条的基础功能,在此之前确保已经创建了Acticity并获取了ProgressBar控件。
其代码如下:3. 增加按钮创建点击事件使进度条可以实现功能,并设置最⼤数值100。
其代码如下。
⼆、SeekBar滑动条控件1.2.3.然后调⽤SeekBar控件,并设置总进度⼤⼩和设置监听事件,以便对滑动条后续操作。
和ProgressBar进度条⼀样,⽤到了setMax⽅法来确定⼤⼩。
另外还⽤到了setOnSeekBarChangeListener进⾏监听滑动条的事件状态。
相关代码如下:三、RatingBar评分控件1.2.3.然后同样再在Activity中调⽤RatingBar控件,并使⽤setOnRatingBarChangeListener⽅法来测试监听评分的状态。
相关代码如下:4. 3最后针对如System.out.println("-->"+rating);这个形式,这个测试⽅法,可以过滤的多余的⽆⽤LogCat信息,进⽽⽅便我们测试。
使用ProgressBar实现加载进度条

使用ProgressBar实现加载进度条
1,ProgressBar是进度条组件,通常用于向用户展示一些耗时操作完成的进度。
2,ProgressBar的关键属性:
*android:max="100",最大显示进度 *android:progress="50",第一显示进
度 *android:secondaryProgress="80",第二显示进
度 *android:indeterminate="true" ,设置是否不精确显示进度。
true表示不精确显
示进度,false表示精确显示进度
3,ProgressBar的关键方法:
*setProgress(int)设置第一进度 *setSecondaryProgress(int)设置第二进
度 *getProgress(获取第一进度 *getSecondaryProgress( 获取第二进
度 *incrementProgressBy(int) 增加或减少第一进
度 *incrementSecondaryProgressBy(int)增加或减少第二进度 *getMax( 获取最大进
度
4,XML重要属性:
*android:progressBarStyle:默认进度条样式 *android:progressBarStyleHorizontal:水平样式
5,layout布局中的代码:
6,java类中的代码:
实现效果
image。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、在XML里定义ProgressBar控件。
<ProgressBar
android:id="@+id/firstBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="200"
android:visibility="gone"/>
<ProgressBar
android:id="@+id/second"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
注释:
style="?android:attr/progressBarStyleHorizontal"
水平进度条。
style="?android:attr/progressBarStyle"默认进度,
2、实现代码:
package com.js.ProgressBarTest;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
public class ProgressBarTest extends Activity {
//声明变量
ProgressBar firstProgressBar;
ProgressBar secondProgressBar;
Button myButton;
int i = 0;
/** Called when the activity is first created. */ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.main);
//根据控件的ID来取得代表控件的对象。
firstProgressBar= (ProgressBar)findViewById(R.id.firstBar);
secondProgressBar = (ProgressBar)findViewById(R.id.second);
myButton = (Button)findViewById(R.id.button);
myButton.setOnClickListener(new MyButton());
}
class MyButton implements OnClickListener
{
@Override
public void onClick(View v)
{
if(i == 0)
{
//通过setVisibility(View.VISIBLE)来显示进度条
firstProgressBar.setVisibility(View.VISIBLE);
secondProgressBar.setVisibility(View.VISIBLE);
}
else if(i < 200)
{
//通过setProgress()来进度条的进程
firstProgressBar.setProgress(i);
//通过setSecondaryProgress()来取得进度信息
firstProgressBar.setSecondaryProgress(i + 10);
secondProgressBar.setProgress(i);
}
else
{
firstProgressBar.setVisibility(View.GONE);
secondProgressBar.setVisibility(View.GONE);
}
i = i + 10;
}
}
}。