web-dev-qa-db-fra.com

Comment convertir des vues en bitmaps?

J'ai deux vues (Textview & ImageView) dans le FrameLayout, je veux enregistrer l'image avec du texte. Pour cela, j'ai converti la vue en bitmap.

Mon xml est:

<FrameLayout 
     Android:id="@+id/framelayout"
     Android:layout_marginTop="30dip"
     Android:layout_height="fill_parent" 
     Android:layout_width="fill_parent">

     <ImageView 
          Android:id="@+id/ImageView01"
          Android:layout_height="wrap_content" 
          Android:layout_width="wrap_content"/>

    <TextView Android:id="@+id/text_view"
          Android:layout_marginTop="30dip"
          Android:layout_width="wrap_content" 
          Android:maxLines="20"
          Android:scrollbars="vertical"
          Android:layout_height="wrap_content"/>

</FrameLayout>
34

Comment convertir la vue en Bitmap

FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap bm = view.getDrawingCache();
79
Niranj Patel

J'avais l'habitude d'utiliser la méthode buildDrawingCache() pour obtenir un bitmap de ma mise en page, mais j'avais du mal avec ça quand la vue était grande. J'utilise maintenant la méthode suivante:

FrameLayout view = findViewById(R.id.framelayout);
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
17
Suragch

Bonjour, vous pouvez obtenir une image bitmap d'une vue à l'aide de l'extrait de code suivant

mView.setDrawingCacheEnabled(true);
mView.getDrawingCache();
2
Jana

pourquoi n'écrivez-vous pas votre classe qui étend ImageView et remplace la méthode onDraw et y met votre image et votre texte, c'est plus facile

1
Buda Gavril