TextView到Bitmap,对齐问题

时间:2014-05-13 10:56:42

标签: android android-canvas textview android-bitmap

我正面临一种情况,我需要为给定的文本绘制位图。我尝试使用必需的属性渲染TextView,然后使用canvas绘制其位图。我的尝试看起来像这样:

TextView nameTv = new TextView(context);
Bitmap bmp = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);

nameTv.layout(0, 0, 200, 200);
nameTv.setGravity(Gravity.CENTER);
nameTv.setText("Test");
nameTv.setBackgroundColor(Color.RED);

nameTv.draw(canvas);

此代码的问题是TextView上的文本不是中心对齐的,这是我需要的。 欢迎任何建议:)

谢谢, 阿马尔

1 个答案:

答案 0 :(得分:2)

我认为问题出在测量上。您没有为此调用度量,并且它没有正确的大小。在layout()之前调用nameTv.measure()。

调用这样的措施:

int measureSpecWidth = MeasureSpec.makeMeasureSpec(200, MeasureSpec.EXACTLY);
int measureSpecHeight = MeasureSpec.makeMeasureSpec(200, MeasureSpec.EXACTLY);
nameTv.measure(measureSpecWidth, measureSpecHeight);