android 闪屏页 动画,记一次 Android 闪屏页适配
适配闪屏页1.使用多个 dpi 的 drawable 对 drawable 进行适配2.对闪屏页进行适配对闪屏页配置闪屏 Theme -> Splashtruetrue@drawable/splash_welcome需要在闪屏页停留使用 smallestWidth 限定符对屏幕进行适配这种方法可以通过Handler指定在闪屏页停留的时间编写 @drawable/splash_welcome.
适配闪屏页
1.使用多个 dpi 的 drawable 对 drawable 进行适配
2.对闪屏页进行适配
对闪屏页配置闪屏 Theme -> Splash
true
true
@drawable/splash_welcome
需要在闪屏页停留
使用 smallestWidth 限定符对屏幕进行适配
这种方法可以通过Handler指定在闪屏页停留的时间
编写 @drawable/splash_welcome.xml -> layer-list 文件代码
编写闪屏页代码(将 setContentView() 注掉)
class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//setContentView(R.layout.activity_splash)
Handler().postDelayed(Runnable {
startActivity(Intent(this, MaiMainAnActivity::class.java))
},1000)
}
}
不需要在闪屏页停留,即 Application 初始完成之后直接跳转到 MainActivity
此方法不依赖屏幕适配
编写 @drawable/splash_welcome.xml -> layer-list 文件代码
编写闪屏页代码(将 setContentView() 注掉)
class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
startActivity(Intent(this, MainActivity::class.java))
// 去掉 Android Activity 自带的原生进入进出动画
activity.overridePendingTransition(0, 0);
finish()
}
}
@drawable/splash_welcome.xml 文件代码,仅供参考
android:bottom="@dimen/dp_151"
android:gravity="fill">
android:bottom="@dimen/dp_211"
android:gravity="fill"
android:top="@dimen/dp_81">
android:bottom="@dimen/dp_41"
android:gravity="center|bottom"
android:left="@dimen/dp_125"
android:right="@dimen/dp_125">
遇到的坑
最开始是用 AndroidAutoSize 今日头条屏幕适配方案 进行的屏幕适配
坑
在闪屏页停留时图片会进行拉伸一下(项目需求,测试过不停留就不会出现拉伸现象)
可能的原因
AndroidAutoSize 适配计算 是在 Application 的时候进行的,因为在 @drawable/splash_welcome 中使用的了 dp 单位 所以当 AndroidAutoSize 计算完成对 dp 的计算时,就会重新更新 @drawable/splash_welcome,从而造成拉伸
对比 smallestWidth 限定符对屏幕方案 在 运行前(引用@dimen/dp_value时)就已经计算好了,所以不会有再次拉伸的情况
参考
smallestWidth 限定符屏幕适配方案
AndroidAutoSize 今日头条屏幕适配方案
去掉 Android Activity 自带的原生进入进出动画
更多推荐
所有评论(0)