2014-05-15 2 views
4

Je sauvegarde ma mise en page dans un bitmap contenant un ImageView et un EditText.Enregistrement d'un edittext dans un bitmap

J'utilise ce code:

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(); 
     } 
} 

Cependant l'image que je sauvegarde ressemble à ceci:

Layout-to-bitmap

Je voudrais supprimer le texte souligné et le curseur de texte dans la edittext lors de l'enregistrement de l'image bitmap. Est-ce possible?

+0

ajouter cette ligne: this.getWindow() setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);. votre méthode saveToImage(). –

+0

Malheureusement, le curseur clignotant est également affiché lorsque le clavier n'est pas :( – deimos1988

+0

@ deimos1988 Avez-vous résolu votre problème?! –

Répondre

0

Pour retirer le curseur clignotant avant d'enregistrer le bitmap que vous pouvez faire

editText.setCursorVisible(false); 

Et puis le remettre à true à nouveau par la suite.

0

Vous avez juste besoin de supprimer à la fois underline et cursor lorsque vous commencez à capturer la mise en page. Vous pouvez supprimer le soulignement par:

yourEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

et le curseur par:

yourEditText.setCursorVisible(false); 

Il serait mieux si vous désactivez le curseur dans votre méthode saveToImage par:

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

puis Une fois la mise en page enregistrée dans la mémoire, réinitialisez simplement yourEditText pour afficher le curseur.

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