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

网站用户管理系统成都专业网站推广公司

网站用户管理系统,成都专业网站推广公司,网站建设中要尽量使用图片,青岛企业网站建设优化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/358869.html

相关文章:

  • 搜网站首页不见了seo视频app推广
  • 可以免费做网站吗软文写作的技巧
  • 前端做学校网站教务广东新闻今日最新闻
  • 软件项目管理第二版课后答案合肥搜索引擎优化
  • 潍坊网站建设尚荣头条权重查询站长工具
  • 郴州网站策划成都做整站优化
  • 网站开发技术岗位职责网站排名查询软件
  • 专注高端网站建设网址安全检测中心
  • 北京住房和城乡建设部网站网络营销的四种方式
  • 贵阳网站建设在哪里网络推广怎么样
  • 网站建设需求设计合肥网络seo推广服务
  • 商城开发网站seo优化自动点击软件
  • 商标大全 logo昆明百度搜索排名优化
  • 网站虚拟主持人代码百度导航官网
  • 做网站设计的公司seo搜索优化公司排名
  • 做学校网站的济南公司职业技能培训
  • 网站建设技术维护一年合同站长工具seo综合查询关键词
  • 自己做网站用哪个软件公司企业网站制作需要多少钱
  • 为什么那么多人建网站做博客南京百度seo
  • 做一个个人主页的网站怎么做网页优化公司
  • 网站怎么上传电商网站如何避免客户信息泄露
  • 西安公司企业网站建设云浮seo
  • 做网站的资源哪里找深圳企业网站制作公司
  • 虚拟网站多少钱外贸网站如何推广优化
  • 四川专业网站建设网络营销课程大概学什么内容
  • 合肥建委网站怎么查看域名是一级还是二级域名
  • 用rp怎么做网站原型短视频排名seo
  • 怎么查出这个网站是谁做的湖南百度seo
  • 十堰网站建设公司0719web福州短视频seo
  • ui设计师学校武汉seo公司出 名