您现在的位置是:首页 > 文章详情

Android 补充 LayerDrawable 沉浸式状态栏

日期:2018-06-22点击:465

      小菜前些日子整理了两次小小的沉浸式状态栏的总结:Android 沉浸式状态栏的多种样式Android 沉浸式状态栏以及伪沉浸式状态栏。今天小菜再稍稍补充一点,Java/Kotlin 代码中设置 LayerDrawable 方式实现沉浸式状态栏。
      LayerDrawable 为图层叠加,对应 xml 中的 layer-list 层次化方式展示 Drawable,小菜借用这种方式实现与以前一样的含有图片的沉浸式状态栏样式。
       GitHub Demo


小菜的测试步骤如下:

  1. 绘制最底层背景色,且设置了一个小圆角,方便区分布局中的背景色;
val radius0 = 10 val outerR = floatArrayOf(radius0.toFloat(), radius0.toFloat(), radius0.toFloat(), radius0.toFloat(), radius0.toFloat(), radius0.toFloat(), radius0.toFloat(), radius0.toFloat()) val roundRectShape0 = RoundRectShape(outerR, null, null) val shapeDrawableBg = ShapeDrawable() shapeDrawableBg.setPadding(0, 0, 0, 0) shapeDrawableBg.setShape(roundRectShape0) shapeDrawableBg.getPaint().setStyle(Paint.Style.FILL) shapeDrawableBg.getPaint().setColor(-0x444445) 
  1. 设置 LayerDrawable 图层,底层为上面绘制的特定矩形颜色框,上一层为一张图片,可用网络下载或本地图片;
// 创建资源对象 val resources = resources // 创建数组对象 val layers = arrayOfNulls<Drawable>(2) layers[0] = shapeDrawableBg layers[1] = resources.getDrawable(R.drawable.icon_bg) 
  1. 在 Toolbar 或其他布局位置设置背景 background;
// 设置背景 toolbar.background = layerDrawable test_lay.background = layerDrawable 

Tips: 图层的叠加在 layers 中,图层越往上,添加到 layers[] 数组中数组下标越大。


      以下是小菜公众号,欢迎闲来吐槽~


公众号.jpg
原文链接:https://yq.aliyun.com/articles/633539
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章