确定位图的宽度和高度

时间:2012-01-19 15:23:54

标签: android bitmap paint android-canvas

我正在使用以下代码段创建带文本的位图。

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
paint.setStyle(Style.FILL);
paint.setColor(fontColor);
paint.setTextSize(fontSize);
canvas.drawText("My Text", x, y, paint);

这是一个问题。如何预先确定要在画布中使用的位图的大小?例如,如果我想要一个带有“Hello World!”的位图在它上面,我想在画布上绘制文本之前找到它的宽度和高度。

2 个答案:

答案 0 :(得分:1)

你可以这样:

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 

Rect bounds = new Rect();

paint.setStyle(Style.FILL);
paint.setColor(fontColor);
paint.setTextSize(fontSize);

paint.getTextBounds("My Text", 0, "My Text".length(), bounds);

int width = bounds.width();
int height = bounds.height();

canvas.drawText("My Text", x, y, paint);

答案 1 :(得分:1)

试试这个,它会加载位图,然后获取高度和宽度,然后你只需要绘制它。将bitmap替换为您的图片名称

bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap);
bitmapHeigth = bitmap.getHeigth();
bitmapWidth = bitmap.getWidth();