android 怎么自定义绘制如下图中这种进度条

 我来答
微博honey_11
2016-11-11 · TA获得超过191个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:325万
展开全部

下面是安卓学习手册中实现各种进度条的截图:

要想看各种进度条的实现代码和文档,直接去360手机助手中下载安卓学习手册,例子文档随便看。

1、说明

  在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。

2、XML重要属性

    android:progressBarStyle:默认进度条样式

    android:progressBarStyleHorizontal:水平样式

 

3 重要方法

    getMax():返回这个进度条的范围的上限

    getProgress():返回进度

    getSecondaryProgress():返回次要进度

    incrementProgressBy(int diff):指定增加的进度

    isIndeterminate():指示进度条是否在不确定模式下

    setIndeterminate(boolean indeterminate):设置不确定模式下

    setVisibility(int v):设置该进度条是否可视

4 重要事件

    onSizeChanged(int w, int h, int oldw, int oldh):当进度值改变时引发此事件

5进度条的样式

Widget.ProgressBar.Horizontal 长形进度

Androidxml  布局:

<ProgressBar

   android:id="@+id/progress_bar"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   style="@android:style/Widget.ProgressBar.Horizontal "

/> 

源码:

private ProgressBar mProgress;

private int mProgressStatus=0;

private Handler mHandler=newHandler();

@Override

protected void onCreate(BundlesavedInstanceState){

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

       mProgress=(ProgressBar)findViewById(R.id.progress_bar);

       new Thread(new Runnable(){

       @Override

       public void run(){

       while(mProgressStatus<100){

            mProgressStatus=doWork();

            mHandler.post(new Runnable(){

                @Override

                public void run(){

                       mProgress.setProgress(mProgressStatus);

                }

           });

       }

     }

     }).start();

效果图:

 

                           

 

带第二进度的进度条

xml配置如下:

<ProgressBar

   android:id="@+id/progress_bar_with_second"

   style="@android:style/Widget.ProgressBar.Horizontal"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:progress="40"

   android:secondaryProgress="70"

   android:paddingTop="20dp"

   android:paddingBottom="20dp"/>

这里我们设置了初始的进度为40,android:progress的值在mini和max之间即mini<=progressvalue<=max

设置了第二进度条的进度值为70,该值也在mini和max之间。

效果如下:

 

 

不确定模式进度条

xml配置文件:

<ProgressBar

   android:id="@+id/progress_bar_indeterminate"

   style="@android:style/Widget.ProgressBar.Horizontal"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:indeterminate="true"

   android:indeterminateBehavior="cycle"

   android:paddingBottom="20dp"

   android:paddingTop="20dp"

   android:progress="40" /> 

这里通过android:indeterminate="true"设置了当前为无模式进度条

效果如图:

 

 

普通圆形进度:Widget.ProgressBar.Inverse

<ProgressBar

   android:id="@+id/progress_bar1"

   style="@android:style/Widget.ProgressBar.Inverse"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:progress="50"

   android:background="#ff00ff"

   android:paddingTop="4dp" /> 

通过android:backgroup设置了背景色

灬誓言兔子
2016-11-10 · TA获得超过113个赞
知道小有建树答主
回答量:220
采纳率:100%
帮助的人:57.8万
展开全部
图去哪了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式