2015-12-09 42 views
1

我試圖設置圖像視圖由另一個類返回位圖的位圖圖像,下面是代碼片段: -設置圖像視圖位圖作爲一個返回的位圖

imageView = (ImageView) findViewById(R.id.imageView); 
Bitmap myBitmap = myModel.loadBitmap(getResources(), R.drawable.nether); 
imageView.setImageBitmap(myBitmap); 

這裏的模型類: -

public class Model { 

Bitmap cache; 

public Bitmap loadBitmap(final Resources resource, final int i){ 

    new Thread(new Runnable(){ 
     public void run(){ 

      cache = BitmapFactory.decodeResource(resource, i); 

     } 
    }).start(); 

    return cache; 
} 
} 

問題是圖像不顯示。它會顯示在設置圖像視圖位圖之前是否使用了用於加載位圖的代碼,但是返回的位圖不起作用。

任何幫助將是偉大的,謝謝!

+0

我會建議使用像picassio或通用圖像加載器 –

+1

的圖像加載庫是什麼問題? – Apurva

+0

woops,4am問題..圖像不顯示,但它工作,如果相同的代碼在圖像視圖位圖設置在同一類中使用,只是返回的位圖不起作用。 – AdamW95

回答

0

- 您使用它在後臺運行的線程,所以它不會按順序去和緩存,可以返回null這就是爲什麼你不能設置位圖

使用此簡單的線條爲你的問題: -

Bitmap bitmap= BitmapFactory.decodeResource(getResources(), R.drawable.icon); 
+0

是的工作,但使用相同的線程相同的代碼也與位圖圖像設置在相同的類中工作,有沒有辦法通過仍然使用線程得到它的工作? – AdamW95

0

我設法解決這個問題,還通過傳遞的ImageView保持線內的圖像加載:

new Thread(new Runnable(){ 
     public void run(){ 

      cache = BitmapFactory.decodeResource(resource, i); 

      imageView.post(new Runnable(){ 
       public void run(){ 
        imageView.setImageBitmap(cache); 
       } 
      }); 

     } 
    }).start(); 

感謝您的幫助!

相關問題