2014-05-15 169 views
4

我將佈局保存爲位圖,該位圖包含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上帶下劃線的文本和文本光標當保存位圖時。那可能嗎?

+0

添加此行:this.getWindow()。setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);你的saveToImage()方法。 –

+0

不幸的是,當鍵盤不閃爍時,也會顯示閃爍的光標:( – deimos1988

+0

@ deimos1988您是否解決了您的問題?!​​ –

回答

0

要刪除光標閃爍的保存位圖,然後才能做

editText.setCursorVisible(false); 

然後將其設置回true再次算賬。

0

當您開始捕捉佈局時,您只需要刪除underlinecursor

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

,然後:如果您通過禁用光標你saveToImage方法內部

yourEditText.setCursorVisible(false); 

這將是更好:您可以刪除用下劃線:

yourEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

光標通過佈局保存在內存中後,只需重置yourEditText即可顯示光標。

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