在位图上绘制缩放的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的位置与相对布局的位置不同。

我做错了什么?

如果您想要一个与视图完全相似的位图,为什么不在位图上绘制视图呢?

可以先绘制与视图大小相同的位图,然后缩放位图。

   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);

最新更新