gpt4 book ai didi

android - getDrawingCache 未更新

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:24 24 4
gpt4 key购买 nike

我在 onDraw 函数中调用 getDrawingCache。问题是它只在第一次包含对 Canvas 的更改,之后,它根本不会更新新的更改。这是我的代码:

        paintAction.draw(canvas);
if (paintAction.isPermanentChange())
{
Bitmap partialBitmap=getDrawingCache();
int numColored=0;
for (int index1=0;index1<partialBitmap.getWidth();index1++)
{
for (int index2=0;index2<partialBitmap.getHeight();index2++)
{
if (partialBitmap.getPixel(index1,index2)==0xFF000000)
numColored++;
}
}
Log.i("PaintDroid","Bitmap pixels: " + numColored);
int areaWidth=partialBitmap.getWidth()-SCROLLBAR_SIZE;
int areaHeight=partialBitmap.getHeight()-SCROLLBAR_SIZE;
int[] pixels=new int[areaWidth*areaHeight];
partialBitmap.getPixels(pixels,0,areaWidth,0,0,areaWidth,
areaHeight);
numColored=0;
for (int index=0;index<pixels.length;index++)
if (pixels[index]==0xFF000000) numColored++;
Log.i("PaintDroid","Pixels: " + numColored);

(setDrawingCache(true) 在创建 View 时调用,因为如果我从 onDraw 调用它,getDrawingCache 将返回 null。)

可以看出,我正在通过遍历位图和获取数组中的值来计算黑色像素的数量,正如我所说,我第一次得到了我预期的数字,但之后那个,它应该增加,但根本没有改变!

有人知道哪里出了问题吗?谢谢。

最佳答案

我解决了。问题是我在 onDraw 的 Canvas 上最后一次绘制操作之前调用了 setDrawingCacheEnabled(true)。必须在绘制完成后调用,否则无法得到正确的结果。

关于android - getDrawingCache 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11055133/

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