如何在 TextureView 上添加视图
How add view over TextureView
我需要在播放视频的 TextureView
上添加 View
我以前用过 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
上?
最后,在初始化 TextureView
和播放视频后,我不得不以编程方式将其添加到我的 FrameLayout
中!
@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(假);
TextureView
不断更新其内容(例如播放视频)将始终透支放在其顶部的任何 View
内容(例如 TextureView
和其他一些 View
放入 FrameLayout
容器内)。
我发现处理该问题的最佳解决方案是在另一个 Window
中显示顶部 View
,该 Window
位于包含 TextureView
的 Window
之上,例如PopupWindow
可用于此。
我需要在播放视频的 TextureView
上添加 View
我以前用过 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
上?
最后,在初始化 TextureView
和播放视频后,我不得不以编程方式将其添加到我的 FrameLayout
中!
@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(假);
TextureView
不断更新其内容(例如播放视频)将始终透支放在其顶部的任何 View
内容(例如 TextureView
和其他一些 View
放入 FrameLayout
容器内)。
我发现处理该问题的最佳解决方案是在另一个 Window
中显示顶部 View
,该 Window
位于包含 TextureView
的 Window
之上,例如PopupWindow
可用于此。