0

如何使我的 editText 写入内容,在 Bitmap 上写入我找到了这段代码,但它不起作用

EditText et = (EditText) findViewById(R.id.etWrite);
Bitmap b = Bitmap.createBitmap(500,500,Bitmap.Config.Alpha_8);
Canvas c = new Canvas(b);
et.draw(c);

我想我应该使用 currentBitmap 我想,我试过但它不起作用

4

4 回答 4

1

试试我给你看的东西:

EditText et = (EditText) findViewById(R.id.etWrite);
et.buildDrawingCache();
Bitmap bmp = Bitmap.createBitmap(et.getDrawingCache());
Canvas c = new Canvas(bmp);
et.draw(c);

希望它有效!

于 2012-08-07T00:16:56.570 回答
1

Bitmap.Config.ALPHA_8仅绘制 Alpha 通道。使用Bitmap.Config.ARGB_8888.

于 2012-08-07T00:27:45.560 回答
1

此代码应该足以将生成的位图放到视图中。

EditText et = (EditText) findViewById(R.id.etWrite);
et.buildDrawingCache(); 
Bitmap bitmap = et.getDrawingCache();

现在使用以下行进行普通视图

view.setBackgroundDrawable(new BitmapDrawable(bitmap));

用于图像视图

imageview.setImageDrawable(new BitmapDrawable(bitmap));

AFAIK draw 方法将覆盖您使用画布传递给它的位图的像素值。

于 2012-08-07T05:04:23.477 回答
0

好的,所以这可能有点晚了,但基本上,您需要使用这些调用在画布上进行写入。首先,使用 OnFocusChanged 侦听器将您的 edittext 文本设置为字符串,然后在画布的 Ondraw(c) 调用中将其写入画布。在你这样做之前,虽然你需要一个字符串来从你的编辑文本中写入(etstring),并且你需要声明一个绘制对象。

 Paint paint= new Paint();
 paint.setTypeface(Typeface.SERIF); //sets typface
 int textx = screenwidth/2;  //use screenwidth/2 to center the text
 c.drawText(etstring, textx, 85, paint); //85 is the height
于 2012-09-04T13:50:08.100 回答