我们知道Android为ProgressBar提供了几种不同的样式,不过若是只是这几种样式还不能满足我们对界面的需求。例如,我们ProgressBar的前景和背景。一般情况下我们希望这是一个按照我们自己意愿的这样一个前景和背景。
这里又要分成几种不同的情况:
1.规则的长方形;
2.环形;
3.不规则图形;
我们这里只要对两种情况进行一个讨论。就是规则的长方形和不规则图形。为什么不对第二种情况进行讨论是因为规则的长方形和不规则的图形笔者之前有用到过,环形的进度条笔者没用到过,笔者在这里想偷个懒,其实很简单的东西,相信大家也是有办法知道该怎么做。
好了,废话不多说。先是规则的长方形进度条。对于规则的长方形进度条,是要借助Android自带的水平进度条,只是我们在xml文件中对ProgressBar进行一个进度样式属性设置。具体xml文件代码如下:
<ProgressBar
android:id="@+id/activity_main_progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/progressbg"
android:layout_below="@+id/textView1" />
其中,style="?android:attr/progressBarStyleHorizontal"对设置它的样式,是水平还是环形等等。而android:progressDrawable="@drawable/progressbg"则是对前景和背景的一个设置。不一样的是progressbg也是一个xml文件,而不是我们所熟悉的图片了。是不是很奇怪为什么@drawable中还能放图片之外的东西?然后这个图片之外的东西对我们Android上界面的一些基本需求还是作出了巨大的贡献的。这个progressbg.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/progressbggreen" />
<!-- 设置第一级进度条颜色图像资源 -->
<item android:id="@android:id/progress" android:drawable="@drawable/progressbgpink" />
</layer-list>
接下来是Java代码,当然如果你之前就在xml的layout文件中写好了ProgressBar的进度值,并且不需要去设置其进度值,那么接下来的代码大可不必看了。Java中的关键代码如下(其实的确也是废话一句):
ProgressBar progressBar = (ProgressBar) findViewById(R.id.activity_main_progressbar);
progressBar.setProgress(progress);
以上就是本程序的关键代码,如果需要这个程序的源代码(本程序的Demo中还写了对进度条的动态刷新),点击此网络连接进行下载
说了规则的长方形进度条现在再来说说不规则的进度条。对于不规则的进度条,我们用到一个比较新的概念——蒙板效果。之前我写过一篇有关于这个蒙板效果的博客,感兴趣的朋友可以点击如下连接查看。。。
—————————— Android中用图片自定义一个进度条(实现蒙板效果) ——————————
里面也是蒙板效果的Demo源码的。这里大家应该了解一个问题——规则的长方形进度条只是不规则图形进度条的一种特殊情况。