2011-09-24 32 views
0

正在創建臨時Bitmap在其上繪製Text,和我想要得到它Pixels這樣我就可以操縱這些像素(我不會在屏幕上顯示此圖像)。 這是代碼位圖的getPixels返回-1爲全陣列

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值!爲什麼?

回答

2

您正在將文本的基線定位在(0,0),因此您只是在位圖的頂部繪製它。把它往下移一點。您可以使用Paint.getTextBounds來測量文字大小,然後使用返回的高度向下移動文字。