正在创建临时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值!!为什么呢?
答案 0 :(得分:2)
您将文本的基线定位在(0,0),因此您只是将其绘制在位图的顶部。把它向下移动一点。您可以使用Paint.getTextBounds来衡量文字大小,然后使用返回的高度向下移动文字。