我有一个应用程序,可以创建用户在文本字段中写入的任何内容的png图像(自定义字体和颜色)
我正在做的是这样的事情:
使用以下代码生成TextView的图像
Bitmap returnedBitmap = Bitmap.createBitmap(textView.getWidth(), textView.getHeight(), Bitmap.Config.ARGB_8888);
//Bind a canvas to it
Canvas canvas = new Canvas(returnedBitmap);
//Get the view's background
Drawable bgDrawable =textView.getBackground();
if (bgDrawable!=null)
//has background drawable, then draw it on the canvas
bgDrawable.draw(canvas);
// draw the view on the canvas
view.draw(canvas);
FileOutputStream out = null;
out = new FileOutputStream(new File(filename));
returnedBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
问题是,生成的图像的质量与TextView中显示的质量不同
有没有办法提高质量?
是否因为TextView没有背景?如果是这样,是否有解决方法?需要生成的图像只是文本,因此透明背景
由于
答案 0 :(得分:0)
我相信质量取决于您创建图像时的屏幕尺寸。我建议你把Textview放在FrameLayout中并从FrameLayout创建位图..
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
v.draw(c);
return b;
}