我想将文本绘制为缩放位图。
我有一个实际的布局,我可以拖放TextView。
“保存”按钮创建一个缩放的位图,我想将TextView放在位图上与相对布局相同的位置。
到目前为止,我正在尝试这个:
Bitmap finalBitmap = Bitmap.createBitmap(postcard.getWidth(), postcard.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas();
canvas.setBitmap(finalBitmap);
Paint p = new Paint();
p.setColor(fct.getTextColor());
p.setTextSize(fct.getTextSize());
p.setTypeface(fct.getFont().getTypeFace(ctx));
Rect bounds = new Rect();
p.getTextBounds(fct.getText(), 0, fct.getText().length(), bounds);
int x = (int) (fct.getPositionX() - bounds.width()/2);
int y = (int) (bounds.height() + fct.getPositionY());
canvas.drawText(fct.getText(), x, y, p);
但结果并不好!
TextView并未放置在相对布局的相同位置。
我做错了什么?
答案 0 :(得分:1)
如果你想要一个与视图完全相同的位图,为什么不在位图上绘制视图呢?
您可以先绘制与视图大小相同的位图,然后缩放位图。
Bitmap bmp = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Config.ARGB_8888);
v.draw(new Canvas(bmp));
Matrix matrix = new Matrix();
matrix.postScale(scale, scale);
return Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
matrix, true);