android学习ProgressBar的简单使用

摘要:
android提供的ProgressBar控件分为两种,一种是不带进度的进度条,一种是带进度的进度条,如果可以计算任务的完成量那么就用带进度条的,如果无法计算任务量,那么就使用不带进度的进度条。ProgressBar如果说只使用系统提供的,那就很简单,就只有那些属性方法,但是感觉比较难得就是ProgressBar的样式,一般做应用都不会直接使用系统提供的,而是在它的额基础上做进一步的美化。

android 提供的ProgressBar控件分为两种,一种是不带进度的进度条,一种是带进度的进度条,如果可以计算任务的完成量那么就用带进度条的,如果无法计算任务量,那么就使用不带进度的进度条。ProgressBar如果说只使用系统提供的,那就很简单,就只有那些属性方法,但是感觉比较难得就是ProgressBar的样式,一般做应用都不会直接使用系统提供的,而是在它的额基础上做进一步的美化。

android还提供了在标题栏上显示progressbar

requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

ProgressBar的关键属性

android:max          最大值
        android:proress        第一进度值
        android:secondprogress      第二进度值
        android:interminate         是否精确显示

最大值:就是整个progressBar的长度

第一进度和第二进度:就是android提供了一个控件上可以同时显示两种进度值,最常见的就是用在播放器上,第一进度一般表示当前播放进度,第二进度一般表示当前缓冲进度

是否精确显示:

ProgressBar的关键方法

setprogress             设置第一进度
        setsecondprogress          设置第二进度
        getprogress              获取第一进度
        getsecondprogress          获取第二进度
        incrementprogressby              增减第一进度
        incrementsecondprogressby        增减第二进度
        getmax                获取最大值

上面的看意思就可以看得明白

对话框形式的进度条,

         //progressDialog 的属性
                progressDialog = new ProgressDialog(ProgressBarActivity.this);
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.setTitle("TEST");
                progressDialog.setMessage("welcome");
                progressDialog.setIcon(R.drawable.ic_launcher);
                //progressDialog 进度条的属性
                progressDialog.setMax(100);
                progressDialog.setProgress(50);
                progressDialog.setIndeterminate(false);//明确显示进度
                progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE, "确定", newDialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, intwhich) {
                        Toast.makeText(getBaseContext(),"thank you ",Toast.LENGTH_LONG).show();
                    }
                });
                //是否可以通过返回按钮退出对话框
                progressDialog.setCancelable(true);
                progressDialog.show();

自定义颜色的进度条

<style name="Widget.ProgressBar.Horizontal">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
        <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">20dip</item>
        <item name="android:mirrorForRtl">true</item>
    </style>

找到progressDrawable ,然后进入progress_horizontal.xml 可以看到系统progessbar的样式定义

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"android:centerColor="#ff5a5d5a"android:centerY="0.75"android:endColor="#ff747674"android:angle="270"
            />
        </shape>
    </item>
    
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#80ffd300"android:centerColor="#80ffb600"android:centerY="0.75"android:endColor="#a0ffcb00"android:angle="270"
                />
            </shape>
        </clip>
    </item>
    
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#ffffd300"android:centerColor="#ffffb600"android:centerY="0.75"android:endColor="#ffffcb00"android:angle="270"
                />
            </shape>
        </clip>
    </item>
    
</layer-list>

拷贝这份文件到工程drawable目录下,这份文件,我们可以更改进度条的颜色,角度。从而改变进度条的样式。

最后记者在ProgressBar的属性中添加ProgressDrawable属性

android学习ProgressBar的简单使用第1张android学习ProgressBar的简单使用第2张

免责声明:文章转载自《android学习ProgressBar的简单使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇内核中的宏定义__init、__initdata和__exit、__exitdata如何在Windows下使用LAPACK和ARPACK [转]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android随笔之——用shell脚本模拟用户按键、触摸操作

  之前写过两篇关于Android中模拟用户操作的博客(其实用一篇是转载的),现在就来讲讲用shell脚本来模拟用户按键操作。本次的目标是用shell脚本打开微信并在其搜索框中搜索相关内容。   本文的模拟功能主要是用adb的input命令来实现,如果你adb的环境变量配置正确的话,在cmd中输入 adb shell input 就可以看见input的用法...

android PopupWindow实现从底部弹出或滑出选择菜单或窗口

本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计。弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml: Xml代码   <?xml version="1.0" encoding="utf-8"?>   <RelativeLayout   ...

android中LitePal的使用

网上有一篇文章写的挺好的,推荐给大家:安卓项目实战之:数据库框架 LitePal 3.0 的使用详解 LitePal是对SQLite数据库操作进行了封装,采用对象映射的方式操作SQLite数据库,简化了对SQLiter的操作 我也是使用的是最新的LitePal3.0 1、首先添加依赖,引入LitePal3.0,在build.gradle中添加如下内容: i...

Android如何制作漂亮的自适布局的键盘

  最近做了个自定义键盘,但面对不同分辨率的机型其中数字键盘不能根据界面大小自已铺满,但又不能每种机型都做一套吧,所以要做成自适应,那这里主讲思路。   这里最上面的titlebar高度固定,下面输入的金额高度也固定(当然也可以自适应),主要是中间的数字键盘,高度和宽度需要自适应。先来张效果图:   最常见的解决方案是用线性布局,自适应当然是按比例,但布...

Android之仿今日头条顶部导航栏效果

随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候像今日头条新闻客户端要显示的内容太多,而且又想在主界面全部显示出来,所以有加了顶部导航栏。 今日头条顶部导航栏区域的主要部分是一个导航菜单。导航菜单是一组标签的集合,在新闻客户端中,每个标签标示一个新闻类别,对应下面ViewPag...

用chrome模拟微信浏览器访问页面

有的网页通过限制user agent 来达到禁止在微信浏览器以外的地方访问,我们通过chrome修改user agent即可破解。 CHROME浏览器,进入开发者模式 切换到手机浏览模板 打开 Network,有下拉菜单中选择Custom->Add 选择Devices,再点击Add custom device 然后在user agent中填写下面的...