How To Add A Splash Screen To My Android Tv App ?
Solution 1:
You can customise Leanback's OnboardingFragment slightly to display it as splash screen. OnboardingFragment
allows you to add on-boarding steps but if you don't need them you can just set setLogoResourceId
inside onCreateView
.
Note that it crashes if you keep page count to zero so keep page count to one and splash duration greater than LOGO_SPLASH_PAUSE_DURATION_MS = 1333
otherwise a page with "Get Started" button will be displayed.
The idea is to use onboarding fragment with just a splash screen initially and add on-boarding steps as your application grows.
OnboardingFragment
publicclassOnboardingFragmentextendsandroid.support.v17.leanback.app.OnboardingFragment {
privatestatic final long SPLASH_DURATION_MS = 2000;
@Nullable@OverridepublicViewonCreateView(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 = newHandler();
Runnable runnable = newRunnable() {
@Overridepublicvoidrun() {
onFinishFragment();
}
};
handler.postDelayed(runnable, SPLASH_DURATION_MS);
return view;
}
@OverrideprotectedvoidonFinishFragment() {
super.onFinishFragment();
// Our onboarding is done// Let's go back to the MainActivitygetActivity().finish();
}
@Overrideprotected int getPageCount() {
return1;
}
@OverrideprotectedStringgetPageTitle(int pageIndex) {
returnnull;
}
@OverrideprotectedStringgetPageDescription(int pageIndex) {
returnnull;
}
@Nullable@OverrideprotectedViewonCreateBackgroundView(LayoutInflater inflater, ViewGroup container) {
returnnull;
}
@Nullable@OverrideprotectedViewonCreateContentView(LayoutInflater inflater, ViewGroup container) {
returnnull;
}
}
OnboardingActivity
/*
* OnboardingActivity for OnboardingFragment
*/publicclassOnboardingActivityextendsActivity {
/**
* Called when the activity is first created.
*/@OverridepublicvoidonCreate(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" />
Declare OnboardingActivity
inside AndroidManifest
<activityandroid:name=".ui.OnboardingActivity"android:enabled="true"android:exported="true"android:theme="@style/Theme.Leanback.Onboarding" />
Start OnboardingActivity
from MainActivity's
onCreate
Solution 2:
Visit following site and copy code from there and make changes accorting to your activity name,img name.also make changes on your manifest to start app with spash screen
http://www.coderefer.com/android-splash-screen-example-tutorial/
Post a Comment for "How To Add A Splash Screen To My Android Tv App ?"