2015-09-19 68 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