位图getPixels为整个数组返回-1

时间:2011-09-24 22:04:49

标签: android bitmap pixel

正在创建临时Bitmap以在其上绘制Text,并且我想得到它Pixels以便我可以操纵这些像素(我不会在屏幕上显示此图像)。 这是代码

Bitmap tempBitmap=Bitmap.createBitmap(200, 400, Bitmap.Config.ARGB_8888);//i've tested all Configs
Canvas tempCanvas=new Canvas(tempBitmap);
tempCanvas.drawColor(Color.WHITE);
tempCanvas.drawText("Hello", 0, 0, mPaint);//mPaint color set to Black

int[] pixels=new int[tempBitmap.getWidth() * tempBitmap.getHeight()];

tempBitmap.getPixels(pixels, 0, tempBitmap.getWidth(), 0, 0, tempBitmap.getWidth(), tempBitmap.getHeight());

但是当我打印所有像素时,它们都是-1值!!为什么呢?

1 个答案:

答案 0 :(得分:2)

您将文本的基线定位在(0,0),因此您只是将其绘制在位图的顶部。把它向下移动一点。您可以使用Paint.getTextBounds来衡量文字大小,然后使用返回的高度向下移动文字。