渐变式状态栏(kotlin写法)

该篇博客介绍了如何在Android的BaseActivity中检查版本并设置状态栏为渐变色。通过`Build.VERSION.SDK_INT > 21`判断版本,然后使用`setStatusBarView()`方法来设定状态栏的背景。在`setStatusBarView()`内部,使用了延迟加载和布局变更监听来确保状态栏背景正确设置。同时,提供了一个XML资源文件展示了线性渐变色的定义。
摘要由CSDN通过智能技术生成
写到BaseActivity里,所有界面都能调用到

判断版本是否大于21
if(Build.VERSION.SDK_INT > 21){
    setStatusBarView()
}
private fun setStatusBarView() {
    //延时加载数据,保证Statusbar绘制完成后再findview。
    Looper.myQueue().addIdleHandler {
        setStatusBarDrawable(this,R.drawable.home_top_gradient_bg)
        window.decorView.addOnLayoutChangeListener(
            View.OnLayoutChangeListener { view, i, i2, i3, i4, i5, i6, i7, i8 ->

                setStatusBarDrawable(this,R.drawable.home_top_gradient_bg)
            }

        )
        false
    }
}
private fun setStatusBarDrawable(activity: AppCompatActivity,id:Int){
    //利用反射机制修改状态栏背景
    val identifier = activity.resources.getIdentifier("statusBarBackground", "id", "android")
    val statusBarView: View = activity.window.findViewById(identifier)
    if (statusBarView != null) {
        statusBarView.setBackgroundResource(id)
    }
}

渐变式drawable资源文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient
            android:angle="180"
            android:endColor="#2c79e2"
            android:centerColor="#07C160"
            android:startColor="#00FF00"
            android:type="linear" />
</shape>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值