2012-05-15 48 views
0

我想知道哪些是Android中用于存储位图的阵列实现的最佳选择。将位图存储在ArrayList<Bitmap>中是个不错的主意,或者这不是一个好的解决方案。Android商店阵列的位图

我想存储像我的应用程序中编程创建的5个不同的位图,并将它们存储在数组中,它们将e绘制到e画布上,但它无法正常工作。

下面是我在做什么:

//beginning 
ArrayList<Bitmap> temp = new ArrayList<Bitmap>(); 

//in some function where mBitmap is been created 
temp.add(mBitmap); 

//in my custom class which extends View 
Bitmap bm = Bitmap.createBitmap(temp.get(temp.size()-1)); 
mCanvas.drawBitmap(bm); 
invalidate(); 

但是从临时位图是永远不会添加到我的mCanvas

任何想法为什么以及哪种方法是在Android/Java数组中存储位图的最佳方式?

回答

1

更好地使用LruCache进行位图缓存。请阅读Displaying Bitmaps Efficiently

+0

LruCache是​​API 12级,我使用API​​ LVL 7 –

+0

可以使用Android HTTP ://developer.android.com/reference/android/support/v4/app/package-summary.html –

+0

虽然这可能会在理论上回答这个问题,但我们希望您在答案中包含链接文章的基本部分,并提供[链接供参考](http://meta.stackexchange.com/q/8259)。如果做不到这一点,答案就会受到链接腐败的威胁。 – Kev

0

这不是存储在ArrayList中使用LruCache位图与软引用的最好办法

LruCache<String, SoftReference<Bitmap>> cache; 
cache = new LruCache<String, SoftReference<Bitmap>>(8*1024*1024)