android - edittext.getdrawing 缓存不工作.Android

标签 android canvas bitmap android-edittext drawingcache

我需要将 edittext 中的字符串转换为位图,但我没有得到字符串,而是得到了这个(见图)enter image description here

我的代码如下

 Canvas c=new Canvas();

     MainActivity.editText.setCursorVisible(false);
     MainActivity.editText.buildDrawingCache();
     Bitmap bmp = Bitmap.createBitmap(MainActivity.editText.getDrawingCache());

     System.out.println("string is "+MainActivity.editText.getText().toString());


File f =new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Photo Text");
     if(!f.exists())
     {
         f.mkdirs();
     }
     f = new File(f.getAbsolutePath(),
             String.valueOf(System.currentTimeMillis()) +"phototext.jpg");
     if(!f.exists())
     {
         try {
            f.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
     }


     try {
         bmp.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(f));
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


     c.drawBitmap(bmp,0,0, mPaint);

请给我建议。我需要来自 edittext 的字符串作为位图。

最佳答案

为什么不获取 ExitText 的文本,然后使用 drawText()Canvas 上绘制它?

String text = editText.getText().toString();
canvas.drawText(text, 0, 0, paint);

并根据文本的高度和长度设置 Canvas 的高度和宽度。

关于android - edittext.getdrawing 缓存不工作.Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19175314/

相关文章:

java - 在 Android 中使用毕加索图像创建 GridView

android - 如何将选项卡之间的数据作为 Activity 发送?

html - 浏览器 Canvas CORS 支持跨域加载图像操作

javascript - 创建 HTML5 无限 Canvas

Android - 读取没有 alpha 的 PNG 图像并解码为 ARGB_8888

android - Android-确定位图上具有不同分辨率的特定位置(X,Y坐标)?

android - gradle无法解决Android项目的依赖关系

android - 以编程方式单击 Android 模拟器上的按钮

javascript - 一张 Canvas ,两个 dom 元素?

delphi - 为什么“Bitmap.SaveToFile”导致黑屏