gpt4 book ai didi

android - 手动将 View 绘制到 Canvas 上不会保留透明度

转载 作者:太空狗 更新时间:2023-10-29 13:31:06 26 4
gpt4 key购买 nike

当我绘制包含透明区域的 View 时,由于其背景图像,当将 View 绘制到 Canvas 时,这些透明区域会变成黑色:

View v = getView();
v.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
v.layout(0, 0, infoWindow.getMeasuredWidth(), infoWindow.getMeasuredWidth());
Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
//c.drawColor(Color.YELLOW); // yellow color does not show up
v.draw(c);

由于代码 fragment 中的黄色背景没有出现在位图中,我得出结论,v.draw(c) 没有使用透明度进行绘制。如果我改为在 Canvas 上绘制一个 Drawable,它的透明区域就会被正确绘制。

由于 View 是从布局文件扩充的,所以我可以观察到相同的布局在操作中使用时由 Android 正确呈现。那么如何在保持透明区域的同时将 View 绘制到 Canvas 上呢?

最佳答案

调用 v.setDrawingCacheEnabled(true)v.getDrawingCache()。第二个会给你一个你可以画的 Bitmap

关于android - 手动将 View 绘制到 Canvas 上不会保留透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15361031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com