当前位置: 首页 > wzjs >正文

网站 字号 英文宁波建设网站哪家好

网站 字号 英文,宁波建设网站哪家好,广东seo点击排名软件哪家好,四川建设网评标专家库startingwindow介绍startingwindow是什么在activity真正显示之前,可能要处理大量耗时任务,如进程创建,资源加载,窗口绘制等。所以在窗口的过渡动画完成之后,可能应用还没有完成页面的绘制,我们需要一个页面…

startingwindow介绍

startingwindow是什么

在activity真正显示之前,可能要处理大量耗时任务,如进程创建,资源加载,窗口绘制等。所以在窗口的过渡动画完成之后,可能应用还没有完成页面的绘制,我们需要一个页面来等待真正的activity显示,下面的图就是应用启动时所显示的纯色背景,和icon

StartingWindow使用总结的目的

本次文章的分享不会讲解StartingWindow的窗口的添加流程和移除流程,在网上其他博客总结分享的已经很充分了,这篇博客主要是分享我们如何定制这个StartingWindow,和系统侧是如何处理的

定制属性有那些

这些属性本文章不会讲解完,至于会设计到那些,主要看后面的补充了

windowSplashscreenContent

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="Theme.TestActivity03" parent="android:Theme.Material.Light.NoActionBar" ><item name="android:windowSplashscreenContent">@layout/activity_main</item></style>
</resources>

这段代码大家一定不陌生吧,这是配置一个activty的主题的,在其中指定一个windowSplashscreenContent,告诉系统我们的开屏内容主要显示我们自己设置的,

我们来看看底层是如何实现的

peekLegacySplashscreenContent 这段代码主要是获取应用设置的windowSplashscreenContent获取对应的资源id,用来显示对应的getDrawable(),如下,这是我设置的启动的背景

windowSplashScreenAnimatedIcon

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="Theme.TestActivity03" parent="android:Theme.Material.Light.NoActionBar" ><item name="android:windowSplashscreenContent">@drawable/aa</item><item name="android:windowSplashScreenAnimatedIcon">@drawable/aa</item></style>
</resources>

这段代码新增了一个windowSplashScreenAnimatedIcon,设置显示的icon,我们先看看底层是如何实现的

在启动时,getWindowAttrs(context, mTmpAttrs);回去读取应用自己设置的所有属性,存给变量mSplashScreenIcon,

继续回到获取到的设置给iconDrawable = mTmpAttrs.mSplashScreenIcon;

      private SplashScreenView fillViewWithIcon(int iconSize, @Nullable Drawable[] iconDrawable,Consumer<Runnable> uiThreadInitTask) {Drawable foreground = null;Drawable background = null;if (iconDrawable != null) {foreground = iconDrawable.length > 0 ? iconDrawable[0] : null;background = iconDrawable.length > 1 ? iconDrawable[1] : null;}Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "fillViewWithIcon");final ContextThemeWrapper wrapper = createViewContextWrapper(mContext);final SplashScreenView.Builder builder = new SplashScreenView.Builder(wrapper).setBackgroundColor(mThemeColor).setOverlayDrawable(mOverlayDrawable).setIconSize(iconSize).setIconBackground(background).setCenterViewDrawable(foreground).setUiThreadInitConsumer(uiThreadInitTask).setAllowHandleSolidColor(mAllowHandleSolidColor);if (mSuggestType == STARTING_WINDOW_TYPE_SPLASH_SCREEN&& mTmpAttrs.mBrandingImage != null) {builder.setBrandingDrawable(mTmpAttrs.mBrandingImage, mBrandingImageWidth,mBrandingImageHeight);}final SplashScreenView splashScreenView = builder.build();Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);return splashScreenView;}}

在后续流程中会创建一个SplashScreenView,并且吧回到的各种参数设置给SplashScreenView,如下

    final SplashScreenView.Builder builder = new SplashScreenView.Builder(wrapper).setBackgroundColor(mThemeColor).setOverlayDrawable(mOverlayDrawable).setIconSize(iconSize).setIconBackground(background).setCenterViewDrawable(foreground).setUiThreadInitConsumer(uiThreadInitTask).setAllowHandleSolidColor(mAllowHandleSolidColor);

最后会把应用携带过来的参数设置给imageView.setBackground(mIconBackground);,显示对应的图标,

http://www.dtcms.com/wzjs/538450.html

相关文章:

  • wordpress申请子站四川北路街道网站建设
  • 成都动力无限网站推广设计服务商
  • 南湖区建设街道办事处网站大连网站建设具体流程是什么
  • 关闭 百度云加速 后网站打不开了十大网站黄页的免费
  • 公司电子商务网站建设规划方案转转网站怎么建设
  • 五百亿建站模板监理证查询网
  • WordPress可以做大网站吗石家庄哪个公司做网站好
  • 平面设计资源网站网站建站服务公司电话
  • 一个购物网站开发的可行性企业商城网站 .net
  • 绍兴网站关键词推广app介绍模板
  • 海南彩票网站开发ag娱乐建设网站
  • 母婴网站dede织梦四大央企是哪四大企业
  • 网站分类 维护寺庙网站素材
  • 服务好的网站开发房屋装修设计师怎么学
  • 网站图片一般分辨率做多大wordpress聚合页面
  • 网站建设中 单页在山东省建设监理协会网站
  • wordpress主机建站外贸出口流程12步骤
  • 网站做百度推广有没有效果呼和浩特网站建设网络公司
  • 企业网站建设与推广范文深圳宝安区房价多少钱一平方
  • 网站空间费网站开发实例教程
  • 成立一个网站需要多少钱企业网站优化平台
  • 学做美食视频网站网页设计考试题目
  • 咨询行业网站制作wordpress用户注册邮件
  • 个人可以做企业网站河南制作网站
  • 免费linux网站空间上海市企业
  • 宜宾网站建设北斗网络衣服定制的app有哪些
  • 怎么做网站中英文版本哪个网站可以免费做H5
  • 合法购物网站建设学校网站怎么建设视频
  • 做旅游网站多少钱免费网站开发公司
  • 高端大气上档次的网站wordpress收录提高百度