To pytanie może wydawać się banalne i było wielokrotnie zadawane, ale nie mogłem znaleźć odpowiedzi, która będzie dla mnie odpowiednia.Jak uzyskać szerokość i wysokość wyświetlanego obrazu w systemie Android?
Mam I ImageView
i GLSurfaceView
, który jest narysowany na ImageView
po naciśnięciu przycisku.
Dla mojego ImageView
przekazuję Bitmap
i skalowuję go, aby uniknąć wyjątku od OutOfMemoryError
. Mój ImageView
jest dopasowany do innych elementów w moim interfejsie, więc rozciąga obraz w celu wypełnienia szerokości/wysokości (tego właśnie chcę).
Kiedy zmienić ImageView
do GLSurfaceView
mam czarne obszary wokół mojego obrazu, które kiedyś być przejrzyste w moim ImageView
, ponieważ GLSurfaceView
robi dziurę w interfejsie użytkownika i działa inaczej niż zwykłych elementów rysuje tło mojego obrazu do czerni i I nie potrzebuję tego, ponieważ mam niestandardowe tło.
Znalazłem rozwiązanie, aby ustawić programowo LayoutParams
dla GLSurfaceView
i używam Bitmap
szerokości i wysokości, ale kończę z mniejszym obrazem. Potrzebuję dokładnej szerokości i wysokości wyświetlanego obrazu - nie dlatego, że ma przezroczyste obszary.
PS: Nie jestem ekspertem OpenGL i jeśli masz rozwiązanie działające na OpenGL, udostępnij je.
)
_______________
| |
| |
|---------------| <-
| transparent |
|---------------| <- Entire
| | ImageView
| Image | need
| | only this
|---------------| <-
| transparent |
|---------------| <-
| |
---------------
b)
_______________
| |
| |
|---------------| <-
| black |
|---------------|
| |
| Image | GLSurfaceView
| |
|---------------|
| black |
|---------------| <-
| |
---------------
My ImageView
i GLSurfaceView
:
<android.opengl.GLSurfaceView
android:id="@+id/glsvImageHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/horScrollImage"
android:layout_marginBottom="5dp"
android:layout_marginTop="50dp"
android:visibility="invisible" />
<ImageView
android:id="@+id/ivImageHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/horScrollImage"
android:layout_marginBottom="5dp"
android:layout_marginTop="50dp"
android:visibility="visible" />
Czy sama bitmapa zawiera przezroczyste regiony górny i dolny? –
Nie, mapa bitowa nie zawiera przezroczystych regionów. –