如何在我的Android电视应用中添加启动画面?

时间:2016-09-02 22:48:36

标签: android android-tv

有谁知道如何在Android TV应用中添加启动画面?对我来说难的是主要的活动应该有Theme.Leanback才能在谷歌播放中被接受,并且要有一个启动画面你需要自己的风格/主题。那怎么做呢?

2 个答案:

答案 0 :(得分:1)

访问以下网站并从中复制代码并根据您的活动名称进行更改,即img name.also对您的清单进行更改以使用spash屏幕启动应用

http://www.coderefer.com/android-splash-screen-example-tutorial/

答案 1 :(得分:1)

您可以稍微自定义Leanback OnboardingFragment以将其显示为闪屏。 OnboardingFragment允许您添加登机步骤,但如果您不需要,可以在setLogoResourceId内设置onCreateView

请注意,如果您将页面数量保持为零,则会崩溃,因此请将页面数量保持为1,并将持续时间设置为大于LOGO_SPLASH_PAUSE_DURATION_MS = 1333,否则将使用" Get Started"按钮将会显示。

我们的想法是在最初使用启动画面时使用入门片段,并在应用程序增长时添加入门步骤。

OnboardingFragment

public class OnboardingFragment extends android.support.v17.leanback.app.OnboardingFragment {
    private static final long SPLASH_DURATION_MS = 2000;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = super.onCreateView(inflater, container, savedInstanceState);
        if (view != null) {
            view.setBackgroundColor(Color.RED);
        }
        setLogoResourceId(R.drawable.logo);
        Handler handler = new Handler();
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                onFinishFragment();
            }
        };
        handler.postDelayed(runnable, SPLASH_DURATION_MS);
        return view;
    }

    @Override
    protected void onFinishFragment() {
        super.onFinishFragment();
        // Our onboarding is done
        // Let's go back to the MainActivity
        getActivity().finish();
    }

    @Override
    protected int getPageCount() {
        return 1;
    }

    @Override
    protected String getPageTitle(int pageIndex) {
        return null;
    }

    @Override
    protected String getPageDescription(int pageIndex) {
        return null;
    }

    @Nullable
    @Override
    protected View onCreateBackgroundView(LayoutInflater inflater, ViewGroup container) {
        return null;
    }

    @Nullable
    @Override
    protected View onCreateContentView(LayoutInflater inflater, ViewGroup container) {
        return null;
    }
}

OnboardingActivity

/*
 * OnboardingActivity for OnboardingFragment
 */
public class OnboardingActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.onboarding);
    }
}

onboarding.xml

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/onboarding_fragment"
    android:name="com.example.android.tvleanback.ui.OnboardingFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

OnboardingActivity

中声明AndroidManifest
<activity android:name=".ui.OnboardingActivity"
            android:enabled="true"
            android:exported="true"
            android:theme="@style/Theme.Leanback.Onboarding" />

OnboardingActivity MainActivity's

开始onCreate