微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android给view的overlay添加bitmap

1、首先将xml布局(layout)转化为bitmap

fun getViewBitmap(layoutId: Int): Bitmap? {
        val view = layoutInflater.inflate(layoutId, null)
        val me = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)
        view.measure(me, me)
        view.layout(0, 0, view.measuredWidth, view.measuredHeight)
        view.buildDrawingCache()
        return view.drawingCache
    }

2、转为drawable后添加,需要注意,必须给drawable设置gravity,bounds跟密度,否则会影响显示效果,红色99就是添加的view,受这三个参数影响

val viewBitmap = getViewBitmap(R.layout.red_oo)
        val bitmapDrawable = BitmapDrawable(null, viewBitmap).apply {
            setGravity(Gravity.END)
            setBounds(0,0,200,100)
            viewBitmap?.run {
                setTargetDensity(viewBitmap.density)
            }
        }
        findViewById.overlay.add(bitmapDrawable)

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐