android沉浸式状态栏 图片背景,Android 补充 LayerDrawable 沉浸式状态栏

小菜前些日子整理了两次小小的沉浸式状态栏的总结:Android 沉浸式状态栏的多种样式 和 Android 沉浸式状态栏以及伪沉浸式状态栏。今天小菜再稍稍补充一点,Java/Kotlin 代码中设置 LayerDrawable 方式实现沉浸式状态栏。

LayerDrawable 为图层叠加,对应 xml 中的 layer-list 层次化方式展示 Drawable,小菜借用这种方式实现与以前一样的含有图片的沉浸式状态栏样式。

GitHub Demo

AAffA0nNPuCLAAAAAElFTkSuQmCC

小菜的测试步骤如下:绘制最底层背景色,且设置了一个小圆角,方便区分布局中的背景色;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)设置 LayerDrawable 图层,底层为上面绘制的特定矩形颜色框,上一层为一张图片,可用网络下载或本地图片;// 创建资源对象val resources = resources// 创建数组对象val layers = arrayOfNulls(2)

layers[0] = shapeDrawableBg

layers[1] = resources.getDrawable(R.drawable.icon_bg)在 Toolbar 或其他布局位置设置背景 background;// 设置背景toolbar.background = layerDrawable

test_lay.background = layerDrawable

AAffA0nNPuCLAAAAAElFTkSuQmCC

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

作者:老菜和尚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值