Dzięki Schermvlieger pytasz this pytanie na anddev.org,Optymalne wykorzystanie BitmapFactory.Options.inSampleSize dla prędkości
Ja tylko kopiowanie jego pytanie SO jak nikt nie odpowiedział na drugą i mam też ten sam problem.
Zastanawiam się, jaki byłby optymalny użytek z BitmapFactory.Options.inSampleSize
w odniesieniu do prędkości wyświetlania obrazu.
Dokumentacja wspomina używając wartości, które są potęgą liczby 2, więc pracuję z 2, 4, 8, 16 itd.
Rzeczy Zastanawiam się o to:
- Mam resample dół do najmniejszego rozmiaru, który jest nadal większy niż rozdzielczość ekranu, czy też powinienem pobierać próbki do rozmiaru wystarczającego, aby ominąć
OutOfMemoryError
? - Jak można obliczyć maksymalny rozmiar obrazu, który może być nadal wyświetlany bez wyczerpania pamięci? Czy głębia kolorów obrazu również odgrywa rolę i głębokość wyświetlania?
- Czy jest wydajne wyświetlanie obrazów za pomocą dwóch mechanizmów (
BitmapFactory
dla dużych plików,setImageURI()
dla mniejszych) Używam przy okazjiImageSwitcher
. - Czy to pomoże utworzyć
Bitmap
,BitmapFactory.Options
iinTempStorage
na początku aplikacji lub utworzyć je tylko w locie, w razie potrzeby?
Kiedy mówisz, że "skalowanie obrazów w czasie rysowania jest niezwykle kosztowne" czy to obejmuje również opcje options.inSampleSize? – kape123
inSampleSize służy do skalowania obrazów w czasie ładowania, a nie w czasie pobierania. To bardzo dobry sposób na podskalowanie obrazów. –
Używamy ARGB_8888, który produkuje bardzo zamglony obraz na Samsung Galaxy Note 2, ale działało dobrze na innym urządzeniu, przynieś go na ARGB_4444 rozkłada aplikację na Samsung Galaxy Note 2 i Pad 3110, z powodu outOfMemoryError. Czy możesz nam pomóc w rozwiązaniu tego problemu? –