23

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

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

我是否创建了一个片段,我可以在我的常规活动之上使其成为半透明并让它只在第一次运行时显示?

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

如果我做后者,我该如何调整所有不同的屏幕尺寸?我可以在 Photoshop 中将图像渲染为各种尺寸,但这不会涵盖所有尺寸。如果我走片段路线,我可以说“match_parent”而不用担心。但是我必须弄清楚 Fragments 是如何工作的,它们把我搞糊涂了。

4

5 回答 5

30

I think this open-source library is exactly what you're looking for:

Showcase View

enter image description here

You can grab the source code and setup instructions from GitHub.

于 2013-08-27T23:18:28.260 回答
16

使用十六进制颜色代码,其中包含 alpha 的两个数字颜色本身的六个数字,如下所示:

android:background="#22FFFFFF"

它会使它变成半透明的。

android:background="#c0000000" for more darkness

已编辑

一般十六进制颜色代码结构是这样的'#FFFF'

为了获得透明度,在任何颜色代码的“#”之后添加两位数字。

例如:#110000, #220000, #330000.

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

于 2014-01-17T07:28:50.857 回答
7

你可以试试这样的

<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>

在你的 onCreate 方法中

View tutorialView = findViewById(R.id.tutorialView);
        boolean tutorialShown = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).getBoolean(Constants.PREF_KEY_TUT_MAIN, false);
        if (!tutorialShown) {
            tutorialView.setVisibility(View.VISIBLE);
        } else {
            tutorialView.setVisibility(View.GONE);
        }

        tutorialView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                v.setVisibility(View.GONE);
                PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit().putBoolean(Constants.PREF_KEY_TUT_MAIN, true).commit();
            }
        });
于 2013-08-27T22:52:51.697 回答
7

有一个屡获殊荣的图书馆,名为“FancyShowcaseView”:

https://github.com/faruktoptas/FancyShowCaseView

FancyShowcaseView 示例

像这样添加到您的项目中:

顶层 build.gradle不是模块级别):

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

模块级(app)build.gradle

dependencies {
    compile 'com.github.faruktoptas:FancyShowCaseView:1.0.0'
}

然后你可以调用:

new FancyShowCaseView.Builder(this)
        .focusOn(view)
        .title("Focus on View")
        .build()
        .show();
于 2017-11-16T22:05:37.430 回答
5

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

于 2013-08-27T22:09:35.970 回答