У меня возникла проблема. У меня есть прослушиватель сообщений, где я рисую масштабированную версию растрового изображения. Проблема связана с тем, что я стараюсь делать масштабирование каждый раз при масштабировании (увеличение масштаба, уменьшение масштаба). Проблема в том, что я не в состоянии переработать битовую карту, потому что, когда я пытаюсь сделать это после нанесенияBitmap.recycle() Вызываю его после рисования
canvas.draw(scaledbitmap,0,0,null);
scaledBitmap.recycle()
я получаю Canvas Канот рисовать переработаны растрового изображения за исключением
Кто-нибудь знает, как бы я идти о рециркуляции растровое изображение после того, как я закончил с ним, чтобы потом еще можно было масштабировать, и я не получаю крах OutOfMemoryException.
код, чтобы показать вам, как именно я использую его:
private SpenDrawListener mPosteDrawListener = new SpenDrawListener() {
@Override
public void onDraw(Canvas canvas, float x, float y, float ratio,
float frameStartX, float frameStartY, RectF updateRect) {
if(mLineDrawingBitmap == null)
mLineDrawingBitmap = loadLineDrawingBitmap(mLineDrawingFileName);
Bitmap bm = Bitmap.createScaledBitmap(mLineDrawingBitmap, (int)(mLineDrawingBitmap.getWidth() * ratio), (int)(mLineDrawingBitmap.getHeight() * ratio), true);
/*
float pointX = (mScreenRect.width() - bm.getWidth())/2;
float pointY = mScreenRect.height()/2 - bm.getHeight();
*/
float pointX = frameStartX - (x * ratio);
float pointY = frameStartY - (y * ratio);
//canvas.drawBitmap(bm, 0, 0,null);
canvas.drawBitmap(bm, pointX, pointY, null);
//bm.recycle();
}
};