Jestem początkującym w Androidzie, więc chciałbym wiedzieć, czy istnieje sposób na uzyskanie wymiarów bitmapy bez załadowania mapy bitowej do pamięci.?Uzyskaj szerokość i wysokość bitmapy bez ładowania do pamięci
14
A
Odpowiedz
28
Można ustawić BitmapFactory.Options z inJustDecodeBounds uzyskać szerokość i wysokość obrazu bez ładowania piksel bitmapy w pamięci
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inJustDecodeBounds = true;
BitmapFactory.decodeStream(inputStream, null, bitmapOptions);
int imageWidth = bitmapOptions.outWidth;
int imageHeight = bitmapOptions.outHeight;
inputStream.close();
Aby uzyskać więcej informacji:
public boolean inJustDecodeBounds
Ponieważ: Poziom API 1 Jeśli ustawione na true, , dekoder zwróci wartość null (bez bitmapy), ale pola out ... będą nadal oznaczone jako set, umożliwiając wywołującemu zapytanie do mapy bitowej bez konieczności przydzielenia pamięci dla jej pikseli przez .
Czy nie działa poprawnie, ponieważ system można skalować mapę bitową dotyczące gęstości ekranu, kiedy wreszcie trzeba załadować bitmapę. Jest to zawsze prawdziwe, tylko jeśli BitmapFactory.Options.inScaled = false – Tobliug