Этот вопрос может показаться тривиальным и задавался много раз, но я не смог найти ответ, который мне подойдет.
У меня есть ImageView
и GLSurfaceView
, которые нарисованы поверх ImageView
, когда я нажимаю кнопку.
Для моего ImageView
я пропускаю Bitmap
и уменьшаю его, чтобы избежать исключения OutOfMemoryError
. Мой ImageView
выровнен с другими элементами в моем пользовательском интерфейсе, поэтому он растягивает изображение, чтобы заполнить ширину/высоту (это то, что я хочу).
Когда я изменяю с ImageView
на GLSurfaceView
, я получаю черные области вокруг моего изображения, которые были прозрачными в моем ImageView
, потому что GLSurfaceView
делает дыру в пользовательском интерфейсе и работает не так, как обычные элементы, он рисует фон моего изображения к черному, и мне это не нужно, потому что у меня есть пользовательский фон.
Я пришел к решению, чтобы установить LayoutParams
для GLSurfaceView
программно, и я использую Bitmap
ширину и высоту, но в итоге получаю уменьшенное изображение. Мне нужна точная ширина и высота отображаемого изображения, а не ImageView
, потому что у него есть прозрачные области.
PS: я не эксперт по OpenGL, и если у вас есть решение, которое работает для OpenGL, поделитесь им.
а)
_______________
| |
| |
|---------------| <-
| transparent |
|---------------| <- Entire
| | ImageView
| Image | need
| | only this
|---------------| <-
| transparent |
|---------------| <-
| |
---------------
б)
_______________
| |
| |
|---------------| <-
| black |
|---------------|
| |
| Image | GLSurfaceView
| |
|---------------|
| black |
|---------------| <-
| |
---------------
Мои ImageView
и 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" />