【发布时间】:2017-04-14 01:48:10
【问题描述】:
这是我的布局文件:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="vertical">
<SurfaceView
android:id="@+id/mediaView"
android:layout_width="300dp"
android:layout_height="200dp"
android:background="@android:color/transparent" />
<Button
android:id="@+id/btnClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="close" />
</FrameLayout>
这就是我将其添加为System alert windows 的方式:
// hiển thị floating view
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(abovedFrameLayout, params);
我的问题是,无论我尝试什么,按钮都不会显示。它总是在SurfaceView 下。我测试过:mSurfaceView.setZOrderMediaOverlay(false);mSurfaceView.setZOrderOnTop(false);,但似乎没有任何效果。你有什么建议吗?谢谢。
【问题讨论】:
-
你可以使用线性布局代替Framelayout
-
@MCZ 我使用线性布局,但表面视图仍然与 Button 重叠。
-
我提交了一段代码,希望对您有所帮助
标签: android surfaceview android-windowmanager