時,這是我的佈局文件:按鈕在SurfaceView的頂部增加了窗口管理
<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我使用線性佈局,但仍然是t他的表面視圖與Button重疊。 –
我提交了一個剪下的代碼,希望它有幫助 –