Этот вопрос может показаться тривиальным и задавался много раз, но я не смог найти ответ, который мне подойдет.
У меня есть 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" />