将文本字符串转换为图像

时间:2013-05-19 15:36:30

标签: android image text base64

我正在将我的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;
     }
      }

1 个答案:

答案 0 :(得分:0)

尝试将字节[]转换为图像:

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

您没有理由将字节数组编码到Base64中以立即对其进行解码。

虽然真正的问题是:你的EditText实际上是什么?它是转换为字符串的图像,还是仅仅是您要显示的文本?

如果它实际上是一个图像,那么上面的方法就可以了。

如果没有,那么这是错误的方法,你需要做的就像FoamyGuy在评论中所说的那样,将文本绘制到ImageView的画布上:https://stackoverflow.com/a/10923478/1426565

虽然,如果您有文本,为什么不在TextView中显示它并自定义TextView以显示您想要的一切(即字体大小,颜色,背景等)?这可能是更好的方法。如果您不确定如何使用TextView,请查看:http://developer.android.com/reference/android/widget/TextView.html