如何在Android中创建半透明的灰色教程覆盖?

如何在Android中创建半透明的灰色教程覆盖?,android,android-fragments,Android,Android Fragments,你知道当你第一次运行Android设备时(如果你使用emulator,你会看到很多),有一个关于如何使用启动器和添加小部件等的有用的小教程。我试图在谷歌上找到一个这样的例子,但我不能。我希望你明白我的意思。在每一步都有蓝色的“OK”按钮 无论如何,我想为我的应用程序创建一个,但我不确定哪种方法是最好的 我是否创建了一个片段,可以在常规活动的基础上使其半透明,并仅在第一次运行时显示 我是否为教程的每个部分制作一个半透明的.png,并在第一次运行时将其覆盖在常规启动器活动上 如果我使用后一种方法,如

你知道当你第一次运行Android设备时(如果你使用emulator,你会看到很多),有一个关于如何使用启动器和添加小部件等的有用的小教程。我试图在谷歌上找到一个这样的例子,但我不能。我希望你明白我的意思。在每一步都有蓝色的“OK”按钮

无论如何,我想为我的应用程序创建一个,但我不确定哪种方法是最好的

我是否创建了一个片段,可以在常规活动的基础上使其半透明,并仅在第一次运行时显示

我是否为教程的每个部分制作一个半透明的.png,并在第一次运行时将其覆盖在常规启动器活动上


如果我使用后一种方法,如何调整所有不同的屏幕尺寸?我可以在Photoshop中将图像渲染到不同的维度,但这并不能覆盖所有维度。如果我走碎片路线,我可以说“匹配父母”,而不用担心。但是我必须弄清楚片段是如何工作的,它们把我弄糊涂了。

你不需要使用Photoshop。例如,您可以使用带有
android:background=“#50134BE8”
的线性布局。这将使它变成透明的蓝色。您可以将布局放置在所有内容之上,并在用户完成后将其隐藏。可以使用任何背景色,但要使其透明,请在“#”符号后放置一个从01到FE的数字以更改其透明度。将宽度和高度设置为
fill\u parent
以占据整个区域。将此视图直接放置在主布局中。希望这有帮助。

你可以试试这样的东西

<LinearLayout ... >
<!-- your Normal layout goes here -->
<RelativeLayout android:id="@+id/tutorialView" android:background="#D0000000"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

        <ImageView android:src="@drawable/hint_menu" android:layout_alignParentLeft="true"
                   android:layout_centerVertical="true" android:layout_width="wrap_content"
                   android:layout_height="wrap_content"/>

    </RelativeLayout>
</LinearLayout>

我认为这个开源库正是您想要的:


您可以从中获取源代码和设置说明。

使用十六进制颜色代码,该代码由两位数字组成,分别表示alpha和颜色本身,如下所示:

android:background="#22FFFFFF"
它会使它变成半透明的

android:background="#c0000000" for more darkness
已编辑

通常,hexadecimak颜色代码结构类似于
'#FFFF'

要获得透明度,请在任何颜色代码的“#”后面添加两个数字

例如:
110000
220000
330000


这两个数字越大,透明度越低。

有一个获奖的库,名为“FancyShowcaseView”:

将以下内容添加到您的项目中:

android:background="#22FFFFFF"
在顶层
build.gradle
模块级)中:

在模块级(应用程序)
build.gradle

dependencies {
    compile 'com.github.faruktoptas:FancyShowCaseView:1.0.0'
}
然后你可以打电话:

new FancyShowCaseView.Builder(this)
        .focusOn(view)
        .title("Focus on View")
        .build()
        .show();

片段很容易理解,您必须尝试一下,正如您自己回答的那样,它们满足屏幕限制!非常感谢。我会试试的。哇,太棒了!谢谢与另一个被选为答案的库相比,这个库实际上运行得非常好。谢谢分享!
new FancyShowCaseView.Builder(this)
        .focusOn(view)
        .title("Focus on View")
        .build()
        .show();