• 团队冲刺第三天


    今天主要做的是启动页的再一次优化,昨天的效果在启动时会有一个白屏的效果出来,这并不我预想的

    今天已经解决了这个问题,并且再闪屏后加了一个可以手动跳过的倒计时动画。

    解决方法,在上一篇冲刺的博客中闪屏动画用的是在一个setContentView(View)来实现的,虽然这不是主要原因,但为保证启动速度,不要调用setContentView()方法。因为Activity设置了layout,它在App完全初始化完成后才会显示,也会耗时。看到上面的解释,我们得知theme的设置才是这个白屏的原因,所以要改进这个问题要在theme上动手。

    setContentView(R.layout.activity_splash);

    一、修改上次的bug

    现在的项目文件目录,箭头是改动的地方,话不多说上步骤

    1.drawable下面放一张图片,作为开头的闪屏

    2.values下面的styles定义一个新的theme背景为设置的闪屏图片  >>>>  SplashActivityTheme

    3.修改AndroidManifest.xml,把闪屏StartPageActivity作为初始界面

    <application

            android:allowBackup="true"

            android:icon="@mipmap/ic_launcher"

            android:label="@string/app_name"

            android:roundIcon="@mipmap/ic_launcher_round"

            android:supportsRtl="true"

            android:theme="@style/AppTheme">

            <activity android:name=".MainActivity">

            </activity>

            <activity

                android:name=".StartPageActivity"

                android:theme="@style/SplashActivityTheme">

                <intent-filter>

                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />

                </intent-filter>

            </activity>

    </application>

    可以看到这个里面用的theme就是刚刚定义的

    4.StartPageActivity

    import com.example.qidongdemo2.R;

    import android.view.animation.AlphaAnimation;

    import android.view.animation.Animation;

    import android.view.animation.Animation.AnimationListener;

    import android.widget.ImageView;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.WindowManager;

    import androidx.appcompat.app.AppCompatActivity;

    public class StartPageActivity extends AppCompatActivity {

        @Override

        protected void onCreate(Bundle savedInstanceState) {

            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

                    WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏

            super.onCreate(savedInstanceState);

            Thread myThread = new Thread() {//创建子线程

                @Override

                public void run() {

                    try {

                        sleep(5000);//使程序休眠一秒

                        Intent it = new Intent(getApplicationContext(), MainActivity.class);

                        startActivity(it);

                        finish();//关闭当前活动

                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                }

            };

            myThread.start();//启动线程

        }

    }

    修改AndroidManifest.xml,注册一个新的activity    InitAdvActivity

  • 相关阅读:
    node.js之Cookie
    jQuery和js之Cookie实现
    StringRedisTemplate操作Redis
    Could not get a resource from the pool 错误解决
    tableLayoutPanel 列宽度设置
    KRBTabControl(中文)Windows选项卡控件
    KRBTabControl
    Deferred content load was not performed. To provide the content, subscribe to the View's QueryControl event
    where(泛型类型约束)
    ExportAsFixedFormat Visio文件另存为其他几种格式的处理
  • 原文地址:https://www.cnblogs.com/g414056667/p/13066239.html
Copyright © 2020-2023  润新知