我正在尝试创建一个帮助屏幕叠加层,它在第一次运行应用程序时出现,覆盖整个屏幕,包括操作栏。如果应用程序之前已经启动,我有逻辑可行,但是我很难让覆盖层覆盖操作栏。
我尝试了一些不同的技术,包括自定义对话框和在顶部调用新布局,所有这些似乎都没有涵盖操作栏。 有些人可以帮助我。
onCreate方法中的:
Dialog helpOverlay = new Dialog(HomeActivity.this);
helpOverlay.requestWindowFeature(Window.FEATURE_NO_TITLE);
helpOverlay.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
helpOverlay.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
helpOverlay.getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
helpOverlay.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
WindowManager.LayoutParams params = helpOverlay.getWindow().getAttributes();
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 100;
params.y = 20;
// If user taps anywhere on the screen, dialog will be cancelled.
helpOverlay.setCancelable(true);
// Setting the content using prepared XML layout file.
helpOverlay.setContentView(R.layout.help_overlay);
helpOverlay.show();
help_overlay.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_overlay_layout_test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:windowActionBarOverlay="true">
<ImageView
android:id="@+id/help_overlay_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/helphome" />
</RelativeLayout>
Helphome图像是一个9补丁图像,我希望将其用于所有分辨率。
编辑:
我也尝试过以下链接中的方法。但结果相同,没有覆盖行动栏:
http://www.christianpeeters.com/android-tutorials/android-tutorial-overlay-with-user-instructions/
答案 0 :(得分:3)
答案 1 :(得分:3)
您可以在清单文件中设置它
<activity
android:name="com.android.YourActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />