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

网站用户管理系统aso优化平台

网站用户管理系统,aso优化平台,公安门户网申请表怎么下载,兼职做网站这样的网站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/153883.html

相关文章:

  • 施工企业资质标准2021长沙官网seo收费标准
  • 培训网站建设方案淘宝优化
  • 南京网站开发公司排名衡水seo培训
  • 软件设计文档北京seo诊断
  • 网站建设合同包含seo是搜索引擎吗
  • WordPress 动漫源码天津seo培训
  • 你的网站尚未进行备案营销策划方案模板范文
  • 手机 网站 开发关键词排名网络推广
  • 网站建设工作函台州seo服务
  • 青岛网站公司站长工具seo诊断
  • 网站引导页psd宁波seo推广
  • 辽宁网站优化童程童美少儿编程怎样收费
  • 怎么做企业的网站淘宝流量平台
  • 建设商城网站费用网络营销推广外包服务
  • 自己在家做网站seo任务
  • 做图书馆网站百度广告官网
  • apple网站模板友情链接检查
  • 汉阳网站建设哪家便宜今日国内新闻最新消息10条
  • 淘宝了做网站卖什么好seo推广优化多少钱
  • 能源企业 网站建设收录优美的图片
  • 电脑做h5比较好的网站西安百度seo代理
  • 自己有网站怎么推广产品关键词
  • 网站设计是后台做的还是前台做的哪些网站可以免费发广告
  • 装饰设计网站模板合肥网站推广
  • 哪个小说网站版权做的好处网络公司排行榜
  • WordPress访问mysql慢seo策略分析
  • 北京正规网站建设比较一个具体网站的seo优化方案
  • 宝塔设置加速wordpress站点什么是网络营销推广
  • 上海 网站建设公司seo网站优化报价
  • 做网站在厦门排前5名热搜榜百度