2010-08-11 58 views
1

我需要在按鈕中顯示進度圖標,以便用戶可以在後臺任務正在處理時與其他GUI元素進行交互。我們如何在按鈕中顯示進度圖標

我在Android開發人員網站中搜索過,發現我們可以使用動畫繪製,但不知道如何使用它們。請告知。

+0

你找出如何做到這一點? – Emmanuel 2011-10-11 20:40:51

+0

在不使用動畫可繪製的情況下執行此操作的非常簡單的方法是在設計佈局xml中使用「PregressBar」組件。當你需要顯示它時,只需將其可見性屬性設置爲可見,當需要隱藏它時,可以將其可見性屬性設置爲GONE。但請記住這是UI任務,所以當你需要使用非UI線程來做到這一點時,你需要使用Handler在運行時設置「ProgressBar」組件的狀態。 – Maneesh 2011-10-21 05:51:43

回答

0

如果默認的進度指示器對您來說足夠好(即轉輪),那麼您可以使用ProgressBar。要將其從正常進度條更改爲紡車,請使用progressBar.setIndeterminate(true)

2

在不使用動畫繪製的情況下執行此操作的非常簡單的方法是在設計佈局xml中使用「PregressBar」組件。當你需要顯示它時,只需將其可見性屬性設置爲可見,當需要隱藏它時,可以將其可見性屬性設置爲GONE。但請記住這是UI任務,所以當你需要使用非UI線程來做到這一點時,你需要使用Handler在運行時設置「ProgressBar」組件的狀態。

下面的id是佈局文件中的組件。

<ProgressBar 
android:id="@+id/progressBar1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</ProgressBar> 

下面是代碼用Java編寫的文件

ProgressBar prg; 
@Override  
    public void onCreate(Bundle savedInstanceState) 
    {   
     super.onCreate(savedInstanceState);   
     setContentView(R.layout.main1); 
     prg=(ProgressBar)findViewById(R.id.ProgressBar1); 
     prg.setVisibility(ProgressBar.GONE); 
    } 
public void start_background_process() 
{ 
// starting the process 
prg.setVisibility(ProgressBar.VISIBLE); 

new Thread(new Runnable() 
     { public void run() 
     { 
     // Do your background stuff here which takes indefinite time 
     mHandlerUpdateProgress.post(mUpdateUpdateProgress); 

     } 
     }).start(); 
} 
final Handler mHandlerUpdateProgress= new Handler(); 

    final Runnable mUpdateUpdateProgress = new Runnable() { 
     public void run() { 
// ending the process 
      prg.setVisibility(ProgressBar.GONE); 
     } 
    }; 
相關問題