0

Android アプリケーションでテキスト文字列を画像に変換しています。SO に関するさまざまな投稿をたどって、このコードを作成しました。しかし、それは画像を表示しません。コードに何か問題がありますか?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); 

     et = (EditText) findViewById(R.id.editText1);
     iv = (ImageView) findViewById(R.id.imageView1);
     btn = (Button) findViewById(R.id.button1);



    btn.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             String text = et.getText().toString();

             byte[] data = null;
            try {
                data = text.getBytes("UTF-8");
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             final String base64 = Base64.encodeToString(data, Base64.DEFAULT);
            Bitmap bit = StringToBitMap(base64);
            iv.setImageBitmap(bit);

        }

    });

}

 public Bitmap StringToBitMap(String encodedString){
     try{
       byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT);
       Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
       return bitmap;
     }catch(Exception e){
       e.getMessage();
       return null;
     }
      }
4

1 に答える 1

0

byte[] を画像に変換するには、これを試してください。

Bitmap bit = BitmapFactory.decodeByteArray(data, 0, data.length);

すぐにデコードして戻すために、バイト配列を Base64 にエンコードする必要がある理由はありません。

本当の問題は次のとおりですが、EditText には実際には何が含まれているのでしょうか。文字列に変換された画像ですか、それとも表示しようとしているのは単なるテキストですか?

それが実際に画像である場合、上記は機能します。

そうでない場合、これは間違ったアプローチであり、FoamyGuy がコメントで述べたように、ImageView の Canvas にテキストを描画する必要があると思われます: https://stackoverflow.com/a/10923478/1426565

ただし、テキストがある場合は、それを TextView に表示し、TextView をカスタマイズして、必要なすべて (つまり、フォント サイズ、色、背景など) を表示しないのはなぜですか? それはおそらくより良いアプローチでしょう。TextView の使用方法がわからない場合は、http://developer.android.com/reference/android/widget/TextView.html を確認してください

于 2013-05-19T17:11:48.433 に答える