Android 补充 LayerDrawable 沉迷式状态栏

作者 : 开心源码 本文共1093个字,预计阅读时间需要3分钟 发布时间: 2022-05-11 共60人阅读

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


小菜的测试步骤如下:

  1. 绘制最底层背景色,且设置了一个小圆角,方便区分布局中的背景色;
val radius0 = 10val 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] = shapeDrawableBglayers[1] = resources.getDrawable(R.drawable.icon_bg)
  1. 在 Toolbar 或者其余布局位置设置背景 background;
// 设置背景toolbar.background = layerDrawabletest_lay.background = layerDrawable

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


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

公众号.jpg

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android 补充 LayerDrawable 沉迷式状态栏

发表回复