Как добавить вид поверх TextureView
Мне нужно добавить View
по моему TextureView
который воспроизводит видео в нем я использовал VideoView
раньше, и это было совершенно нормально, но у меня была проблема с анимацией, поэтому я изменил ее на TextureView
и теперь я не могу поставить View
над ним! Кажется, что Textureview
охватит все виды, это мой макет XML:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frmview"
>
<com.my.app.TextureVideoView
android:id="@+id/vv_play"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:alpha="0.0" />
<ImageView
android:id="@+id/iv_play"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/app_ic" />
</FrameLayout>
Как я могу положить View
над TextureView
который играет видео?
3 ответа
Наконец я должен был добавить это программно к моему FrameLayout
после инициализации TextureView
и проигрывание видео!
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mPreview = (TextureView) findViewById(R.id.vv_play);
mPreview.setSurfaceTextureListener(this);
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.frmview);
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.app_ic);
frameLayout.addView(img);
}
Возможно, вы можете попробовать этот API-интерфейс TextureView:
TextureView.setOpaque (ложь);
который постоянно обновляет свой контент (например, воспроизводит видео), всегда будет перерисовывать любой контент, который находится поверх него (например, и какой-либо другой контент, помещенный внутри
FrameLayout
контейнер).
Лучшее решение, которое я нашел для обработки, - это показать верхнюю
View
внутри другого, который сидит сверху
Window
который содержит
TextureView
, например
PopupWindow
можно использовать для этого.