- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试在 SurfaceView
之上显示一个 VideoView
。但它不可见但对点击有反应(MediaController 出现并播放声音)。视频似乎在 SurfaceView
后面播放,所以我也尝试使用 setZOrderMediaOverlay()
和/或 setZOrderOnTop()
但没有任何改变
当我转到主屏幕时,我在淡入淡出的动画中看到了一瞬间的 VideoView,所以它确实存在。
我用 xml 布局尝试过,也完全以编程方式尝试过,但没有任何效果。
这是我的 Activity :
public class VideoTest extends Activity {
private RelativeLayout mLayout;
private VideoView mVideo;
private Handler mHandler;
private FrameLayout mFrameLayout;
private SurfaceView mSurfaceView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFrameLayout = new FrameLayout(this);
mFrameLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
mLayout = new RelativeLayout(this);
mLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
mVideo = new VideoView(this);
mVideo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mSurfaceView = new SurfaceView(this);
mSurfaceView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
mSurfaceView.setZOrderMediaOverlay(false);
mSurfaceView.setZOrderOnTop(false);
mFrameLayout.addView(mSurfaceView);
mLayout.addView(mVideo);
mFrameLayout.addView(mLayout);
setContentView(mFrameLayout);
// with xml
// setContentView(R.layout.main);
// mFrameLayout = (FrameLayout) findViewById(R.id.activity_reader);
// mLayout = (RelativeLayout) findViewById(R.id.videoview);
// mVideo = (VideoView) findViewById(R.id.video_view);
// mSurfaceView = (SurfaceView) findViewById(R.id.surface_view);
// Set the handler to me messaged from the threads
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg != null) {
mVideo.setMediaController(new MediaController(mVideo.getContext()));
mVideo.setVideoPath("/mnt/sdcard/myvideo.mp4");
if (mLayout.getVisibility() == View.VISIBLE) {
mLayout.setVisibility(View.GONE);
} else {
mLayout.setVisibility(View.VISIBLE);
}
// mFrameLayout.bringChildToFront(mLayout);
// mFrameLayout.bringChildToFront(mVideo);
// mFrameLayout.requestLayout();
// mFrameLayout.invalidate();
// mFrameLayout.postInvalidate();
// mVideo.requestFocus();
}
super.handleMessage(msg);
}
};
}
/** Inflate the menu */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_reader_menu, menu);
return true;
}
/** Handle menu items events */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.toggle_video:
new Thread() {
public void run() {
mHandler.sendEmptyMessage(0);
};
}.start();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
我的 xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_reader"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView android:id="@+id/surface_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<RelativeLayout android:id="@+id/videoview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone">
<VideoView android:id="@+id/video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</FrameLayout>
一个提示:因为这只是一个找出它为什么不起作用的测试,所以我尝试最小化我的真实应用程序中的代码,其中 VideoView
的可见性由处理程序控制从 SurfaceView
的绘图线程获取消息。这就是为什么我实现了一个在使用菜单时发送消息的线程。
最佳答案
根据 this thread,我不认为你可以有重叠的 SurfaceViews Android框架工程师回答:
Sorry, you can't do this -- because surface views are very special and not really views (the surface is a separate window Z-ordered with your own), their Z-ordering does not match your views. A surface view is a big, heavy object; you are not intended to treat SurfaceView like a regular view in this way.
关于android - SurfaceView 之上的 VideoView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5433525/
因此,我试图在网站主体中创建导航和页脚,但 particle.js 不断覆盖这些元素。我试过 z-index 但它没有显示出来。 particle.js 不允许我触摸我的导航栏或页脚。会很感激一些帮助
我正在为我的类(class)建立一个美食车网站。我想要有一个盘子的图像,然后一旦它被点击就会有一个不同的食物图像出现在它上面。我想知道可以使用哪种 javascript 或 else/if 语句来实现
我目前正在做一个元素,我有两张人体图像,正面和背面。图像设置为 height: 80vh。我的问题是:我一直在使用 bootstrap 在屏幕较宽时使图像并排流动,在屏幕高时使图像相互叠加,使用 co
有没有办法将“处理...”语言放在 DataTable 对象的顶部而不是垂直中间?如果我有一张长 table ,它会隐藏在页面之外,因为它的默认位置在中间。 $('#example').dataTab
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
问题 我有一个表单,一旦用户填写并提交,我希望在表单上弹出一条消息,显示“现在坐下来放松一下吧……”。理想情况下,我希望此消息上有一个按钮表示“确定”。 到目前为止我有什么? 通过 ajax post
我想在 div 之上制作一个菜单,所以文本基本上位于它之上(参见示例)。我想在同一个 div 中包含菜单的文本,所以 html 是这样的: Portfolio |
我想在 div 之上制作一个菜单,所以文本基本上位于它之上(参见示例)。我想在同一个 div 中包含菜单的文本,所以 html 是这样的: Portfolio |
我想创建这样的布局: 我有 3 个不同的图像:背景、白色方 block 和 V 形符号。 当我希望盒子从一侧移动到另一侧时,如何将它们定位为照片中的位置 当 onClick 被触发时。 我已经尝试过:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关于您编写的代码问题的问题必须在问题本身中描述具体问题 — 并且包括有效代码 以重现它。参见 SSC
我正在尝试获取鼠标当前悬停的元素并将其返回。根据我迄今为止从研究中收集到的信息,这是执行此操作的代码: document.getElementById('theTable').onmouseo
首先,我想说声抱歉,但我在设计 Android 应用程序时遇到了问题 :D我希望该按钮位于 ListView 下方。实际上该按钮位于 ListView 上方并隐藏了下部区域。我该如何解决? scree
我正在尝试使用 Swiperefreshlayout,它工作得很好,但我需要知道用户何时位于我的 Activity 顶部。我正在阅读这个,我发现了一个名为“setOnScrollListener”的方
我想有两个按钮像页脚一样固定在底部屏幕上,其他 View 不会传递它或在两个按钮上重叠。它只会一直停留在底部。对不起我的英语不好。请帮我。顺便说一句,我不能发布图片,所以它需要 10 个声誉,这就是我
我在所有页面上都有一个由 JavaScript 创建的下拉菜单,有些列最多有 20 个元素。在 Mozilla 浏览器中,此下拉列表显示在所有内容的最上方,但在 Internet Explorer 中
如果我直接在框架上绘画,它显示得很好,但船不会出现在面板顶部... package MoonBlast; import java.awt.BorderLayout; import java.awt.
我已经着手设置我的 JFrame 的背景图像,但现在我的组件(我假设)卡在它后面。我已经尝试阅读有关顶级容器的内容,但我就是无法理解它 T_T。有人有主意吗 ?也许我需要找到另一种方式来设置背景图片?
我有一个 UIView (A),它以纵向模式显示并附加了一个 UIButton。当用户单击按钮时,第二个 UIView (B) 被初始化并显示为 UIView A 顶部的模态视图。 是否可以将第二个
我对这件事束手无策。 我有几个 div。它们都有一个向下的箭头。它应该居中在中间,棕色线上和所有东西的顶部。最后一个 div 也应该有箭头。我尝试了 z-index、绝对和相对定位,但没有任何效果。
我正在尝试使图像出现在父 div 之外,这样图像看起来就好像位于 div 上而不增加父 div 的高度。但是,无论我尝试过什么,图像都会被父 div 截断并且不会显示所有内容。 我有一个 js fid
我是一名优秀的程序员,十分优秀!