Android ProgressBar手動控制開始和停止

來源:互聯網
上載者:User

標籤:max   讀取   log   str   body   view   設定   maxheight   res   

這兩天有個需求,點擊按鈕從SD卡解壓壓縮包,並讀取壓縮包內txt文檔內容,然後在街面上顯示出來。畢竟IO操作很耗時,如果檔案較大會花費不少時間。所以,在處理資料的時候能給個進度就好了。我們通常的做法就是,點擊按鈕後彈出一個載入框或者載入進度條,等資料處理結束後,再讓對話方塊消失。

但是現在的需求是,用一個布局,左側顯示重新整理列表,右側顯示ProgressBar。那麼問題來了,ProgressBar顯示的很大,而且開啟後就一直在轉動,無法控制。那麼就來解決這兩個問題吧~

第一個問題:控制ProgressBar的大小和樣式

首先,建立一個style樣式,設定寬高和圖片,具體如下:

<style name="ProgressCircle">    <item name="android:indeterminateDrawable">@drawable/ic_refresh_grey_600_24dp</item>    <item name="android:minWidth">25dp</item>    <item name="android:minHeight">25dp</item>    <item name="android:maxWidth">60dp</item>    <item name="android:maxHeight">60dp</item></style>

然後,寫一個xml檔案progressbar_circle.xml,設定ProgressBar的轉動效果。

<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"        android:drawable="@drawable/ic_refresh_grey_600_24dp"        android:fromDegrees="0"        android:pivotX="50%"        android:pivotY="50%"        android:toDegrees="360"></rotate>

到這裡,大小固定,轉動效果也有了。

第二個問題:手動控制轉動的開始和停止

開始的時候,設定setIndeterminateDrawable和setProgressDrawable為定義的xml檔案,即可開始轉動。

結束的時候,設定setIndeterminateDrawable和setProgressDrawable為固定的圖片,即可停止轉動。

/** * 開始重新整理動畫 */public void startRefresh() {   progressbar_refresh.setIndeterminateDrawable(getResources().getDrawable(         R.drawable.progressbar_circle));   progressbar_refresh.setProgressDrawable(getResources().getDrawable(         R.drawable.progressbar_circle));}/** * 停止重新整理動畫 */public void stopRefresh() {   progressbar_refresh.setIndeterminateDrawable(getResources().getDrawable(         R.drawable.ic_refresh_grey_600_24dp));   progressbar_refresh.setProgressDrawable(getResources().getDrawable(         R.drawable.ic_refresh_grey_600_24dp));}

以上。

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.