2015-09-19 31 views
0

我有一個問題(希望它不是愚蠢的)。是getDrawable(int resId)慢? 它比使用BitmapFactory解碼資源更快嗎?調用getDrawable(resid).getInstrinsicHeight()比使用inJustDecodeBounds = true的Bitmap.Options解碼要快得多嗎?我知道位圖解碼速度很慢,而且消耗了大量內存,但getDrawable(int redId)和結果Drawable對象呢?它分配了很多內存。 在此先感謝。Android getDrawable性能

回答

0

你的問題是這一個類似的:

Efficient way of creating Bitmap out of Drawable from res (BitmapFactory vs Type Casting)

「你可以在http://source.android.com專門爲decodeResource代碼看看對位圖工廠的源代碼

我就有理由相信。使用BitmapFactory是首選,但無論哪種情況,如果您正在解碼多個位圖,則應調用getResources()一次並存儲結果以用作函數的資源參數。「

此外,我建議你去通過第一次在這裏2篇文章,瞭解解決方法使用這些effficiently之一:

http://www.coderzheaven.com/tag/getdrawable/

+0

謝謝您的回答。但我仍然不明白爲什麼最好使用decodeResource。我有源代碼,但實際上我不知道哪個操作是快速的,等等。我發現getDrawable中有同步,但是這是什麼原因?爲什麼你應該調用getResources一次?正如我所看到的,僅當mResource變量爲null時才調用getResources。最終只會在第一次調用時創建nad資源。如果我錯了,請修理我。 在此先感謝。 – DPM