0

editText に書かれている内容をビットマップに書き込むにはどうすればよいですか? このコードを見つけましたが、機能しません。

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

このコードは、生成されたビットマップをビューに配置するのに十分なはずです。

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

通常のビューには次の行を使用します

view.setBackgroundDrawable(new BitmapDrawable(bitmap));

イメージビュー用

imageview.setImageDrawable(new BitmapDrawable(bitmap));

私の知る限り、 draw メソッドは、キャンバスを使用して渡すビットマップのピクセル値を上書きします。

于 2012-08-07T05:04:23.477 に答える
1

Bitmap.Config.ALPHA_8アルファチャンネルのみを描画します。を使用しBitmap.Config.ARGB_8888ます。

于 2012-08-07T00:27:45.560 に答える
0

さて、これは少し遅いかもしれませんが、基本的に、これらの呼び出しを使用してキャンバスに書き込む必要があります。まず、OnFocusChanged リスナーを使用して edittext テキストを文字列に設定し、キャンバスの Ondraw(c) 呼び出しでキャンバスに書き込みます。その前に、edittext から (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 に答える