gpt4 book ai didi

android - 如何对 BitmapDrawable 进行深度复制?

转载 作者:行者123 更新时间:2023-11-29 02:04:33 25 4
gpt4 key购买 nike

我在克隆 BitmapDrawable 时遇到问题。我尝试了 this post 中的答案但它会创建一个“浅”副本,而我需要一个“深”副本,这样我就可以在不影响原始副本的情况下更改克隆中的像素。

我也试过这个:

    Bitmap bitmap = bdOriginal.getBitmap();
BitmapDrawable bdClone = new BitmapDrawable(getResources(), bitmap.copy(bitmap.getConfig(), true));

但它似乎创建了一个不可变的克隆,即使我将 Bitmap.copy() 中的可变参数设置为“true”。也就是说,滤色器似乎不会改变克隆。我做错了吗? (编辑:我使用调试器确认 bitmap.mIsMutable = true)

总而言之,我需要一个 BitmapDrawable 的克隆,它可以在不影响原始对象的情况下使用滤色器进行更改。有什么建议吗?

提前致谢...

最佳答案

  1. 创建相同大小的新位图
  2. 为这个新的位图创建 Canvas
  3. 将您的第一个 Bitmap 绘制到此 Canvas 中。

例子:

Bitmap copy = Bitmap.createBitmap(original.getWidth(), original.getHeight(), original.getConfig());
Canvas copiedCanvas = new Canvas(copy);
copiedCanvas.drawBitmap(original, 0f, 0f, null);

关于android - 如何对 BitmapDrawable 进行深度复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762185/

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