栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android-防止启动时出现白屏

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android-防止启动时出现白屏

白色背景的问题是由于应用加载到内存时android的冷启动引起的,可以通过以下方法避免此问题:

public class onboardingWithCenterAnimationActivity extends AppCompatActivity {public static final int STARTUP_DELAY = 300;public static final int ANIM_ITEM_DURATION = 1000;public static final int ITEM_DELAY = 300;private boolean animationStarted = false;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {    setTheme(R.style.AppTheme);    getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_onboarding_center);}@Overridepublic void onWindowFocusChanged(boolean hasFocus) {    if (!hasFocus || animationStarted) {        return;    }    animate();    super.onWindowFocusChanged(hasFocus);}private void animate() {    ImageView logoImageView = (ImageView) findViewById(R.id.img_logo);    ViewGroup container = (ViewGroup) findViewById(R.id.container);    ViewCompat.animate(logoImageView)        .translationY(-250)        .setStartDelay(STARTUP_DELAY)        .setDuration(ANIM_ITEM_DURATION).setInterpolator( new DecelerateInterpolator(1.2f)).start();    for (int i = 0; i < container.getChildCount(); i++) {        View v = container.getChildAt(i);        ViewPropertyAnimatorCompat viewAnimator;        if (!(v instanceof Button)) { viewAnimator = ViewCompat.animate(v)         .translationY(50).alpha(1)         .setStartDelay((ITEM_DELAY * i) + 500)         .setDuration(1000);        } else { viewAnimator = ViewCompat.animate(v)         .scaleY(1).scaleX(1)         .setStartDelay((ITEM_DELAY * i) + 500)         .setDuration(500);        }        viewAnimator.setInterpolator(new DecelerateInterpolator()).start();    }}}

布局

<?xml version="1.0" encoding="utf-8"?><frameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="?colorPrimary"android:orientation="vertical"><LinearLayout    android:id="@+id/container"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_gravity="center"    android:gravity="center"    android:orientation="vertical"    android:paddingTop="144dp"    tools:ignore="HardpredText"    >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:layout_marginTop="16dp"        android:alpha="0"        android:text="Hello world"         android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"        android:textColor="@android:color/white"        android:textSize="22sp"        tools:alpha="1"        />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:layout_marginTop="8dp"        android:alpha="0"        android:gravity="center"        android:text="This a nice text"      android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse"        android:textSize="20sp"        tools:alpha="1"        />    <Button        android:id="@+id/btn_choice1"        android:layout_width="200dp"        android:layout_height="wrap_content"        android:layout_marginTop="48dp"        android:scaleX="0"        android:scaleY="0"        android:text="A nice choice"        android:theme="@style/Button"        />    <Button        android:id="@+id/btn_choice2"        android:layout_width="200dp"        android:layout_height="wrap_content"        android:layout_marginTop="4dp"        android:scaleX="0"        android:scaleY="0"        android:text="Far better!"        android:theme="@style/Button"        /></LinearLayout><ImageView    android:id="@+id/img_logo"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="center"    android:src="@drawable/img_face"    tools:visibility="gone"    /></frameLayout>

img脸

<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"        android:opacity="opaque"><item android:drawable="?colorPrimary"/><item>    <bitmap        android:gravity="center"        android:src="@drawable/img_face"/></item>

将此主题添加到清单中的初始屏幕

<?xml version="1.0" encoding="utf-8"?><resources><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">    <!-- Customize your theme here. -->    <item name="colorPrimary">@color/colorPrimary</item>    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>    <item name="colorAccent">@color/colorAccent</item>    <item name="android:windowBackground">@null</item></style><style name="AppTheme.CenterAnimation">    <item name="android:windowBackground">@drawable/ll_face_logo</item></style>

这样会产生效果

有关更多详细信息和更多解决方案,您可以查看此 BlogPost



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号