关于这些元素,请注意以下几点:
应用图标 (1) 应该是矢量可绘制对象,它可以是静态或动画形式。不超过 1000 毫秒。默认情况下,使用启动图标。
图标背景 (2) 是可选的,在图标与窗口背景之间需要更高的对比度时很有用。如果您使用一个自适应图标,当该图标与窗口背景之间的对比度足够高时,就会显示其背景。
与自适应图标一样,前景的三分之一被屏蔽(3)。
窗口背景 (4) 由不透明的单色组成。如果窗口背景已设置且为纯色,则未设置相应的属性时默认使用该背景。
启动画面动画机制由进入动画和退出动画组成。
进入动画由系统视图到启动画面组成。这由系统控制且不可自定义。
退出动画由隐藏启动画面的动画运行组成,可以对其自定义。如果你要对其进行自定义,你将可以访问 SplashScreenView 及其图标,并且可以在它们之上运行任何动画(需要设置转换、不透明度和颜色)。在这种情况下,当动画完成时,需要手动移除启动画面。
🔥 自定义应用中的启动画面
==============
💥 设置主题属性以更改其外观
🌀 设置启动画面背景颜色
设置了淡紫色的背景图。
效果图:
代码如下:
AndroidManifest.xml设置主题:
android:allowBackup=“true”
android:icon=“@mipmap/ic_launcher”
android:roundIcon=“@mipmap/ic_launcher_round”
android:label=“@string/app_name”
android:supportsRtl=“true”
android:theme=“@style/Theme.SccMall.SplashScreen”>
🌀 设置中间显示的图标
中心图标大图,内容需要保留2/3的内边距,否则图标会被裁剪掉。
设置透明的静态图标
图标如下:
效果图:
代码如下:
设置透明的动态图标
效果图:
代码如下:
splash_animate_icon.xml
android:oneshot=“false”>
🌀 设置图标的背景颜色
设置了紫色的图标背景颜色。如果图标背景不透明,会被遮挡效果无法看出。
效果图:
代码如下:
🌀 画面底部的图片(尺寸比例需要为 2.5:1,谷歌不推荐用)
效果图:
这里使用的尺寸是500:200。
代码如下:
💥 最终效果
效果:
代码如下:
💥 让其在屏幕上显示更长时间
启动画面最长1000毫秒。如果你的广告页需要更多时间来加载数据,谷歌也提供了让其显示更长时间的方法,咱们一起来试试。
效果:
跟上面对比明显发现时间延长了不少。
代码如下:
public class AdvertiseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
…
//延长启动画面显示时间
extendDisplayTime();
}
//延长启动画面显示时间
private void extendDisplayTime() {
MyViewModel myViewModel = new MyViewModel(getApplication());
// Set up an OnPreDrawListener to the root view.
final View content = findViewById(android.R.id.content);
content.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
// 检查初始数据是否准备好。
if (myViewModel.isReady()) {
// 取消挂起,内容准备好了。
content.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
} else {
// 挂起,内容未准备好。
return false;
}
//如果仅return false,则会产生一个永久显示SplashScreen的效果。
}
});
}
public class MyViewModel extends AndroidViewModel {
public MyViewModel(Application application) {
super(application);
}
private long startUptimeMillis = SystemClock.uptimeMillis();
public boolean isReady(){
return SystemClock.uptimeMillis()-startUptimeMillis>3000;
}
}
}
💥 自定义用于关闭启动画面的动画
效果:
代码如下:
public class AdvertiseActivity extends AppCompatActivity {
ActivityAdvertiseBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
…
//关闭动画
小福利:
在当下这个碎片化信息环境的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021大厂最新Android面试真题解析
各个模块学习视频:如数据结构与算法
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!
或直接点击这里前往我的GitHub中下载,就可以白嫖啦,记得给文章点个赞哦。
平常自己也会经常研读。
2021大厂最新Android面试真题解析
[外链图片转存中…(img-sftYzoxa-1710333525988)]
各个模块学习视频:如数据结构与算法
[外链图片转存中…(img-uimyJwqG-1710333525989)]
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
[外链图片转存中…(img-H1i8VxZw-1710333525989)]
[外链图片转存中…(img-tGKFuSWF-1710333525990)]
这份体系学习笔记,适应人群:**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!
或直接点击这里前往我的GitHub中下载,就可以白嫖啦,记得给文章点个赞哦。
还没有评论,来说两句吧...