将edittext保存到位图

时间:2014-05-15 12:13:42

标签: android bitmap save

我将布局保存到位图,其中包含ImageView和EditText。

我正在使用此代码:

public void saveToImage(RelativeLayout content){

    Bitmap bitmap = Bitmap.createBitmap(content.getWidth(), content.getHeight(), Bitmap.Config.ARGB_8888);

    Canvas c = new Canvas(bitmap);
    content.layout(0, 0, content.getLayoutParams().width, content.getLayoutParams().height);
    content.draw(c);


    try{
        File file,f = null;                    
        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
            {  
                 file =new File(android.os.Environment.getExternalStorageDirectory(),"TTImages_cache");
                 if(!file.exists())
                {
                  file.mkdirs();

                 } 
                 f = new File(file.getAbsolutePath()+file.separator+ "filename"+".png");
            }
          FileOutputStream ostream = new FileOutputStream(f);                                   
          bitmap.compress(CompressFormat.PNG, 10, ostream);
          ostream.close();

         } 


         catch (Exception e){
         e.printStackTrace();
        }
}

但是我保存的图像如下所示:

Layout-to-bitmap

我想在保存位图时删除edittext中带下划线的文本和文本光标。这可能吗?

2 个答案:

答案 0 :(得分:0)

要在保存位图之前删除闪烁的光标,可以执行

editText.setCursorVisible(false);

然后再将其重新设置为true

答案 1 :(得分:0)

开始捕获布局时,您只需删除underlinecursor。您可以通过以下方式删除下划线:

yourEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

和光标:

yourEditText.setCursorVisible(false);

如果您通过以下方式禁用saveToImage方法中的光标会更好:

public void saveToImage(RelativeLayout content){
    yourEditText.setCursorVisible(false);
       ....
       ....
    //your code for saving the layout
}

然后将布局保存在内存中后,只需重置yourEditText即可显示光标。

public void saveToImage(RelativeLayout content){
    //your code for saving the layout
       ....
       ....
    yourEditText.setCursorVisible(true);
}