Кто-нибудь знает, как добавить заставку в приложение Android TV? что усложняет для меня, так это то, что основное действие должно иметь Theme.Leanback, чтобы быть принятым в google play, и чтобы иметь заставку, вам нужен свой собственный стиль/тема. Итак, как это сделать?
Как добавить заставку в приложение Android TV?
Ответы (2)
Вы можете настроить OnboardingFragment, чтобы отобразить его в виде заставки. OnboardingFragment
позволяет добавлять этапы адаптации, но если они вам не нужны, вы можете просто установить setLogoResourceId
внутри onCreateView
.
Обратите внимание, что он вылетает, если вы держите количество страниц равным нулю, поэтому оставьте количество страниц равным единице и продолжительность заставки больше LOGO_SPLASH_PAUSE_DURATION_MS = 1333
, в противном случае будет отображаться страница с кнопкой «Начать».
Идея состоит в том, чтобы изначально использовать фрагмент адаптации только с заставкой и добавлять шаги адаптации по мере роста вашего приложения.
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
Посетите следующий сайт и скопируйте код оттуда и внесите изменения в соответствии с именем вашей активности, именем img. Также внесите изменения в свой манифест, чтобы запустить приложение с экраном спаша.
http://www.coderefer.com/android-splash-screen-example-tutorial/
<style name="AppTheme" parent="@style/Theme.Leanback"> <item name="android:windowBackground">@color/splash_background</item> </style>
- person Mr. Kevin Thomas   schedule 03.09.2016