Mam.png przechowywany jako zasób w mojej aplikacji na Androida. W moim kodu, ja allocationg nową instancję Bitmap z tego obrazu następująco:Nieprawidłowe wymiary obrazu w Androidzie podczas korzystania z pliku obrazu Bitmap
Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.imgName);
Ale kiedy czytam wymiary obrazu z obiektu Bitmap przy użyciu getWight() i getHeight() metody,
int width = img.getWidth();
int height = img.getHeight();
Otrzymuję różne wyniki od oryginalnego obrazu ... Czy ktoś może mi wyjaśnić, czego mi brakuje i jak mogę odzyskać rozmiar obrazu?
(Mój projekt jest zgodne z Android 2.2 - API 8)
Edit: OK - okazało się, jak uzyskać rzeczywiste wymiary: ustawień inJustDecodeBounds
właściwość klasy BitmapFactory.Options
true następująco:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.imgName, options);
width = options.outWidth;
height = options.outHeight;
problem jest teraz, że dekoder zwraca null gdy wyślemy Options
argumentu, więc muszę rozszyfrować ponownie tak jak ja wcześniej (bez Options
argumentu ...), aby pobrać Bitmap
instancji -bizarre, isnt to?
Dziękuję za odpowiedź, ale czy wiesz, jeśli istnieje sposób, aby uzyskać "prawdziwy" rozmiar obrazu? –
@ET najprostszym sposobem jest hardcoding to. W każdym razie będziesz znał rozmiar obrazu, który umieściłeś w folderze do rysowania. szczerze mówiąc, nie próbowałem uzyskać rzeczywistego rozmiaru. – manjusg
Nie mogę używać tych rozwiązań, ponieważ zdjęcia są dość dynamiczne i mogą zostać odzyskane z serwisu internetowego w przyszłości. Poza tym - mam mnóstwo zdjęć :) –