博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ProgressBar学习笔记,自定义横向进度条的样式(包含ActionBar上面的进度条)
阅读量:6211 次
发布时间:2019-06-21

本文共 3813 字,大约阅读时间需要 12 分钟。

 点显示进度条后→  

android:max="100"         进度条的最大值

android:progress            进度条已经完成的进度值
android:progressDrawable      已经完成的进度条轨道显示的Drawable对象

indeterminateDrawable       设置绘制不显示进度的进度条的Drawable对象

android:indeterminate        设置为true,进度条不精准显示进度
android:indeterminateDuration   设置不精准显示进度的时

 

布局文件

bar_color.xml 设置进度条的颜色

bar_style.xml 用图片来设置进度条

MainActivity.java

package com.kale.progressbar;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.ProgressBar;public class MainActivity extends Activity {    ProgressBar pB04,pB05;    Button showBt,hintBt;    //模拟一个长度为100的数组    private int [] data = new int[100];    int hasData = 0,status = 0;    Handler mHandler = new Handler() {        @Override        public void handleMessage(Message msg) {            if(msg.what == 0x111) {                pB04.setProgress(status);                pB05.setProgress(status);            }        }    };        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                requestWindowFeature(Window.FEATURE_PROGRESS);//在窗口标题上显示带进度的横向进度条        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//显示不带进度的进度条                //上面的代码必须在setContentView之前写        setContentView(R.layout.activity_main);        initView();        new Thread() {            public void run() {                while(status < 100) {                    //获取耗时操作完成的百分比                    status = doWork();                    //发送消息                    mHandler.sendEmptyMessage(0x111);                }            }        }.start();                showBt.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                //显示不带进度的进度条                setProgressBarIndeterminate(true);                    //显示带进度的进度条                setProgressBarVisibility(true);                setProgress(4500);                            }        });                hintBt.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                //隐藏不带进度的进度条                setProgressBarIndeterminate(false);                //隐藏带进度的进度条                setProgressBarVisibility(false);            }        });    }        public int doWork() {        data[hasData++] = (int)(Math.random() * 100);        try {            Thread.sleep(100);        } catch (Exception e) {            // TODO: handle exception        }        return hasData;    }    private void initView() {        pB04 = (ProgressBar)findViewById(R.id.progressBar04_id);        pB05 = (ProgressBar)findViewById(R.id.progressBar05_id);        showBt = (Button) findViewById(R.id.show_button_id);        hintBt = (Button)findViewById(R.id.hint_button_id);    }}

源码地址:

转载地址:http://ycsja.baihongyu.com/

你可能感兴趣的文章
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
App开发中甲乙方冲突会闹出啥后果?H5 APP 开发可以改变现状吗
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>