Tworzę aplikację dla systemu Android i muszę załadować obraz (bitmapę) w jamie i zmienić jego rozmiar za pomocą gestu "przybliżenia palcem". Jednak gdy obraz przekracza pewien rozmiar, aplikacja ulega awarii (wyjątek OutOfMemory). Jak zoptymalizować ładowanie i manipulowanie obrazem?Ładowanie dużych bitmap przez Androida
Aby załadować obraz używam:
BitmapFactory.decodeResource (ctx.getResources(), R.drawable.image)
Aby wyciągnąć go:
imgCanvas.drawBitmap (image, posX, posY, null),
Aby zmienić jego rozmiar:
Bitmap.createScaledBitmap (originalBitmap, neww, NEWH, true);
początkowo załadować obraz w oryginalnym rozmiarze (z inSampleSize = 1). Kiedy robię "powiększenie", muszę zmienić wielkośćSampleSize z wartością> 1, a następnie przyciąć obraz? – Giammy
Przed zbliżeniem użytkownika, ładujesz cały obraz za pomocą opcji inSampleSize> 1. Następnie, gdy użytkownik powiększy, w niektórych punktach ponownie załaduje obraz, ale tylko jego część i rozmiar inSampleSize, który ma niższą wartość (ale wciąż więcej niż 1). Gdy użytkownik powiększy w kółko, twój inSampleSize = 1 (i załadujesz tylko tę część, która jest widoczna). –