2015-08-09 33 views
0

我有一種方法和一個位圖顯示加載條直到完成方法

private static Bitmap do(Bitmap bit){ 
//Show loading until return; 
return bit; 
} 

當我使用以下代碼大約需要30秒以上。我想要的是顯示加載條,直到方法完成

bitmap = do(bitmap);

我怎樣才能做到這一點?

我做什麼,以調整位圖:

Bitmap bit; 
bit = getResizedBitmap(bit,100,100);//takes 20 seconds 
image.setImageBitmap(bit); 
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) { 
      int width = bm.getWidth(); 
      int height = bm.getHeight(); 
      float scaleWidth = ((float) newWidth)/width; 
      float scaleHeight = ((float) newHeight)/height; 
      // CREATE A MATRIX FOR THE MANIPULATION 
      Matrix matrix = new Matrix(); 
      // RESIZE THE BIT MAP 
      matrix.postScale(scaleWidth, scaleHeight); 

      // "RECREATE" THE NEW BITMAP 
      Bitmap resizedBitmap = Bitmap.createBitmap(
       bm, 0, 0, width, height, matrix, false); 
      return resizedBitmap; 
     } 

我怎樣才能使用AsyncTask

回答

1

首先相同的結果:你應該把方法在AsyncTask

第二個:在調用方法之前顯示進度條。然後,當方法結束時將其隱藏起來。


例子:

private class MyTask extends AsyncTask<Bitmap, Integer, Boolean> { 
    protected Boolean doInBackground(Bitmap... bit) { 
     //show progress bar 
     //call your method 
     return true; 
    } 

    protected void onProgressUpdate(Integer... progress) { 
     setProgressPercent(progress[0]); 
    } 

    protected void onPostExecute(Boolean done) { 
     //hide progress bar 
    } 
} 

你運行你的AsyncTask是這樣的:

Bitmap bit; 
new MyTask().execute(bit); 
//Now your Bitmap object is ready. 
+0

謝謝哥們讓我嘗試,我們將看到 – Device

+0

什麼位圖和位圖[之間的區別] – Device

+0

'bitmap'是一個Bitmap對象,'bitmap []'是一個數組。 – iTurki

相關問題