2014-02-28 47 views
1

Here它說這個如何使用BitmapDrawable的構造函數/製作臨時加載圖像?

BitmapDrawable() 這個構造函數是在API層面4.使用BitmapDrawable(android.content.res.Resources,android.graphics.Bitmap)棄用,而不是指定一個位圖繪製並確保設置正確的密度。

我試圖設置一個臨時圖像在圖像加載之前。爲了得到這一點我以前this教程,給了我這個函數來獲得一個顏色暫時的,而不是使用此功能的圖像:

static class DownloadedDrawable extends ColorDrawable { 
    private final WeakReference<BitmapDownloaderTask> bitmapDownloaderTaskReference; 

    public DownloadedDrawable(BitmapDownloaderTask bitmapDownloaderTask) { 
     super(Color.BLACK); 
     bitmapDownloaderTaskReference = 
      new WeakReference<BitmapDownloaderTask>(bitmapDownloaderTask); 
    } 

    public BitmapDownloaderTask getBitmapDownloaderTask() { 
     return bitmapDownloaderTaskReference.get(); 
    } 
} 

我的想法如果你知道使用BitmapDrawable通過this問題 另一種方式來做到這一點,我當然會很樂意使用它,但我不喜歡使用lib。

+0

有幾十個選項,例如LevelListDrawable – pskink

回答

0

如果你想顯示位圖,而不是純色,從BitmapDrawable延長:

static class DownloadedDrawable extends BitmapDrawable { 
private final WeakReference<BitmapDownloaderTask> bitmapDownloaderTaskReference; 

public DownloadedDrawable(Resources resources, Bitmap bitmap, BitmapDownloaderTask bitmapDownloaderTask) { 
    super(resources, bitmap); 
    bitmapDownloaderTaskReference = 
     new WeakReference<BitmapDownloaderTask>(bitmapDownloaderTask); 
} 

public BitmapDownloaderTask getBitmapDownloaderTask() { 
    return bitmapDownloaderTaskReference.get(); 
} 
} 

要使用它:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_drawable); 
DownloadedDrawable draw = new DownloadedDrawable(getResources(), bitmap, yourBitmapDownloaderTask); 
yourImageView.setImageDrawable(draw); 
+0

該函數說'構造函數BitmapDrawable(Resources,Drawable)未定義' – Shishi

+0

啊,是的,當然...更新我的答案 – FunkTheMonk

0

嘗試使用new BitmapDrawable(context.getResources(), canvasBitmap);

+0

我想我只是不太明白方法,因爲這設置了一種顏色,我希望它是一個圖像,以便簡單的線條不能幫助我,因爲我不'不知道該把它放在哪裏。 – Shishi