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>
Comment convertir la vue en Bitmap
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
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);
Bonjour, vous pouvez obtenir une image bitmap d'une vue à l'aide de l'extrait de code suivant
mView.setDrawingCacheEnabled(true);
mView.getDrawingCache();
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