android progressbar 水平進度條

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   color   ar   使用   sp   

<?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/ok" />    <!-- 定義軌道上已完成部分的樣式 -->    <item android:id="@android:id/progress"        android:drawable="@drawable/no" /></layer-list>    


my_bar.xml //配置進度條的圖片
@drawable/ok @drawable/no 為圖片儲存在drawable檔案夾中

布局檔案中進度條配置

<ProgressBar <!--使用系統預設的-->android:id="@+id/bar" android:layout_width="fill_parent" android:layout_height="wrap_content"android:max="100"style="@android:style/Widget.ProgressBar.Horizontal"/><!-- 定義一個水平進度條,並改變軌道外觀 --><ProgressBar  <!--自訂-->android:id="@+id/bar2" android:layout_width="fill_parent" android:layout_height="wrap_content"android:max="100"android:progressDrawable="@drawable/my_bar"  <!--此為上面的設定檔-->style="@android:style/Widget.ProgressBar.Horizontal"/>

  activity中調用

 1 public class ProgressBarTest extends Activity 2 { 3     //該程式類比填充長度為100的數組 4     private int[] data = new int[100]; 5     int hasData = 0; 6     //記錄ProgressBar的完成進度 7     int status = 0;     8     @Override 9     public void onCreate(Bundle savedInstanceState)10     {11         super.onCreate(savedInstanceState);12         setContentView(R.layout.main);13         final ProgressBar bar = (ProgressBar) findViewById(R.id.bar);14         final ProgressBar bar2 = (ProgressBar) findViewById(R.id.bar2);15         //建立一個負責更新的進度的Handler16         final Handler mHandler = new Handler()17         {18             @Override19             public void handleMessage(Message msg)20             {21                 //表明訊息是由該程式發送的。22                 if (msg.what == 0x111)23                 {24                     bar.setProgress(status);25                     bar2.setProgress(status);26                 }27             }28         };29         //啟動線程來執行任務30         new Thread()31         {32             public void run()33             {34                 while (status < 100)35                 {36                     // 擷取耗時操作的完成百分比37                     status = doWork();38                     // 發送訊息到Handler39                     Message m = new Message();40                     m.what = 0x111;41                     // 發送訊息42                     mHandler.sendMessage(m);43                 }44             }45         }.start();46     }47     //類比一個耗時的操作。48     public int doWork()49     {50         //為數組元素賦值51         data[hasData++] = (int)(Math.random() * 100);52         try53         {54             Thread.sleep(100);55         }56         catch (InterruptedException e)57         {58             e.printStackTrace();59         }60         return hasData;61     }62 }

 

android progressbar 水平進度條

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.