Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android-個性化進度條

android-個性化進度條

編輯:關於Android編程

1.案例效果圖

progress[1]

2.准備素材

image

progress1 progress2

progress1.png(78*78) progress2.png(78*78)

3.原理

采用一張圖片作為ProgressBar的背景圖片(一般采用顏色比較淺的)。另一張是滾動條的圖片(一般采用顏色比較深的圖片)。進度在滾動是:滾動圖片逐步顯示,背景圖片逐步隱藏,達到上面的效果。

4.靈感來自Android控件提供的源碼

4.1 默認帶進度的滾動條,如下圖

 

    

 

image

注意:關鍵是style屬性在起作用

4.2 找到樣式定義的位置

鼠標放在style屬性值上,按下Ctrl鍵,出現超鏈接,點擊超鏈接跳轉到樣式的定義位置

image

樣式定義的內容如下

image

重點研究:

android:progressDrawable:滾動條的樣式

@android:drawable/progress_horizontal:樣式定義的文件

在android-sdk-windowsplatformsandroid-14data es目下搜索progress_horizontal.xml文件,搜索結果如下:

image

打開progress_horizontal.xml文件,內容如下

 

   
           
       
   

釋義:

 

定義滾動條的背景樣式

第二滾動條的樣式

滾動條的樣式

思考:如果我想做垂直滾動條,怎麼辦了?

關鍵在clip元素的屬性上做修改

<clip
android:clipOrientation
=vertical 定義滾動的方向 vertical為垂直方向
android:drawable=@drawable/progress1 定義滾動的圖片
android:gravity=bottom > 定義滾動的開始位置

5.定義樣式文件progress_vertical.xml

image

progress_vertical.xml文件代碼如下

 


 

6.應用自定義的樣式

 


 

7.點擊按鈕模擬滾動的效果

 

publicclass ProgressActivity extends Activity {     
     ProgressBar pb =null;
     TextView txtProgress;
     Handler handler =new Handler();
     @Override
     publicvoid onCreate(BundlesavedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          System.out.println(主題= + getTheme() + );
          pb = (ProgressBar) findViewById(R.id.pbPic);

	
//按鈕
Button btnStart = (Button) findViewById(R.id.btStart);

	

	
//顯示進度
txtProgress = (TextView) findViewById(R.id.txtProgress);

	

	
//按鈕點擊事件
btnStart.setOnClickListener(new OnClickListener() { publicvoid onClick(Viewv) {

	

	
//創建並啟動線程,使用線程執行模擬的任務
new Thread(new Runnable() { publicvoid run() { for (inti = 0; i < 100;i++) {//循環100遍 try { handler.post(new Runnable() { //更新界面的數據 publicvoid run() { pb.incrementProgressBy(1);//增加進度

	

	
//顯示完成的進度
txtProgress.setText(pb.getProgress() + %); } }); Thread.sleep(100); } catch (InterruptedExceptione) { } } } }).start(); } }); }}

	

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved