首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 之LayerDrawable层叠式样layer-list及自定义颜色ProgressBar

2013-04-02 
Android 之LayerDrawable层叠样式layer-list及自定义颜色ProgressBar前面一篇文章中简单实现了ProgressBar

Android 之LayerDrawable层叠样式layer-list及自定义颜色ProgressBar
                 前面一篇文章中简单实现了ProgressBar,http://blog.csdn.net/kiritor/article/details/8726267

          但是对于我们来说系统的ProgressBar有时候同样会显得很单调,因此笔者准备实现一些特别的

          进度条 。不过在那之前我们先学习LayerDrawable层叠样式layer-list的使用方法.

                 layer-list是用于将多个图片或资源按照顺序叠层起来。

                 看一看其具体的语法吧:

                 xml文件中:

                    第二张:

                 Android 之LayerDrawable层叠式样layer-list及自定义颜色ProgressBar

                 实现方式如下:

                      首先是层叠文件:

package com.kiritor.ui_progressbar_color;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.ProgressBar;public class ProgressBar_Color extends Activity implements Runnable {private ProgressBar mColor = null;private Thread thread;private int mCount = 0;private Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {finish();super.handleMessage(msg);}};private boolean stateChange;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mypage_color);showProgress();thread = new Thread(this);thread.start();}@Overridepublic void run() {while (true) {int current = mColor.getProgress();// 得到当前进度值int currentMax = mColor.getMax();// 得到进度条的最大进度值// int secCurrent = bar.getSecondaryProgress();// 得到底层当前进度值// 以下代码实现进度值越来越大,越来越小的一个动态效果if (stateChange == false) {if (current >= currentMax) {stateChange = true;} else {// 设置进度值mColor.setProgress(current + 1);// 设置底层进度值mColor.setSecondaryProgress(current + 1);}} else {if (current <= 0) {stateChange = false;} else {mColor.setProgress(current - 1);mColor.setSecondaryProgress(current - 1);}}try {Thread.sleep(50);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private void showProgress() {mCount = 0;mColor = (ProgressBar) findViewById(R.id.progress_horizontal_color);mColor.setProgress(0);mColor.setIndeterminate(false);/* * 需要注意的是setIndeterminate的参数为true 或false: * true表示不确定模式:滚动条的当前值自动在最小到最大值之间来回移动 * ,形成这样一个动画效果,这个只是告诉别人“我正在工作”,但不能提示工作进度到哪个阶段。                    主要是在进行一些无法确定操作时间的任务时作为提示 *false表示确定模式根据你实际的进度设置进度值*/}}
               完整的源码:

                       http://download.csdn.net/detail/kiritor/5188933

                         

热点排行