caching java objects (with later reuse) is a good idea to solve this
specifically, what i am doing, is
1. obtain a compressed bitmap array from my pool
2. invoke holder.bitmapView.setImageBitmap(holder.bitmapData, BitmapView.ScaleMode.SCALE_WIDTH_HEIGHT)
the following happens in setImageBitmap
3. i then cache the given stream, and decompress the bitmap array into a bitmap using ByteArrayInputStream, and cache that bitmap, and then invalidate my view
the following happens in onDraw
4. i create a new scaled bitmap, and cache the scaled bitmap
5. i then draw the scaled bitmap onto the canvas