저는 onDraw 함수에서 getDrawingCache를 호출합니다. 문제는 처음에만 캔바스에 대한 변경 사항을 포함하고 그 이후에는 새로운 변경 사항으로 전혀 업데이트되지 않는다는 것입니다. 여기에 내 코드입니다 :getDrawingCache가 업데이트되지 않았습니다.
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 (뷰가 생성 될 때이 된 onDraw에서 호출하는 경우, getDrawingCache는 null를 돌려줍니다 때문에 사실이)라고합니다.)
가으로 볼 수있다, 난 비트 맵을 가로 지르고 배열에서 값을 얻음으로써 검정 픽셀 수를 계산합니다. 그리고 제가 말했던 것처럼, 처음에 예상했던 수를 얻었지만, 그 후에는 증가 할 것으로 예상되었지만, 전혀 바뀌지 않는다!
누구에게 잘못된 생각이 있습니까? 감사합니다. .
이 작동하지 않습니다. – janex