開源項目NumberProgressBar的簡單使用

NumberProgressBar是安卓中一個開源的項目,可以實現下面這種進度條效果。

項目源碼下載地址:https://github.com/daimajia/NumberProgressBar
下載並解壓,打開NumberProgressBar-master\library\src\main\java\com\daimajia\numberprogressbar.java,我們可以看到它與ProgressBar沒有任何關係,直接繼承自View
根據它的效果圖,我們知道,它分爲三部分,已經完成的(顏色條)、文字(百分比)、未完成的(剩下的白色條)。
好了,不多說了,開始我們的Demo吧
第一步,新建項目
第二步,右鍵項目新建一個Source Folder,名字隨便,我喜歡使用縮寫,就叫做np吧,嘿嘿。
第三步,把源碼拷過來,源碼在NumberProgressBar-master\library\src\main\java目錄下,如圖

第四步,我們看到報錯了,別急,這是因爲它的資源文件沒有拷過來我們進入目錄\NumberProgressBar-master\library\src\main\res\values我們看到三個文件
第一個:attrs.xml,直接拷貝到項目的res目錄的values包下,原本是沒有的,所以不用擔心衝突,如果已經有了的話就複製裏面resources節點中間的代碼過來。
第二個:strings.xml,裏面只有個appname,這個項目中已經有了,所以不用管這個文件
第三個:styles.xml,這裏面是一些這個NumberProgress的幾種不同顏色的樣式,你可以只拷貝你需要的style過來,然後打開項目中res目錄下的style粘貼代碼,注意別刪原有的樣式,直接貼到後面就得了.

第五步:打開NumberProgressBar,也就是報錯的那個源碼文件,按crtl+shift+O導包,選擇你的項目的包名的那個R,保存。
第六步:進入MainActivity的佈局文件,即activity_main,在適當位置編輯如下代碼,我是用它來把helloworld替換掉
 <com.daimajia.numberprogressbar.NumberProgressBar
        android:id="@+id/number_progress_bar"
        style="@style/NumberProgressBar_Default"
        /> 
第七步:編輯代碼,我這裏寫在了oncrete中,代碼中註釋得很詳細了,我就不多說了
package com.zxy.npd;

import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import com.daimajia.numberprogressbar.NumberProgressBar;

public class MainActivity extends Activity {

private int rate;// 表示進度條的進度
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final NumberProgressBar bnp = (NumberProgressBar) findViewById(R.id.number_progress_bar);//找到自定義的這個“控件”
rate = 0;//初始化進度位置
Timer timer = new Timer();// 獲取timer對象
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {//在UI線程中運行
@Override
public void run() {
// bnp.incrementProgressBy(1);//設置每次的增量,也可以像下面這樣用個表達式來實現
rate++;//
if (rate == 110) {
bnp.setProgress(0);//進度走完後再從0開始
rate = 0;
} else {
bnp.setProgress(rate);// 設置進度
}
}
});
}
}, 1000, 100);// 程序開始1秒後執行TimerTask任務,每隔0.1秒重複一次
}
}
大功告成!運行一下。
謝謝!歡迎指正
發佈了20 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章