Comment convertir une image dessinable de ressources en Bitmap
je essayaient de joindre des images à partir de Drawable à un courriel (à partir de mon application à application Gmail)
j'ai essayé le code suivant:
Intent emailintent2 = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailintent2.setType("image/*");
emailintent2.putExtra(Intent.EXTRA_EMAIL, emailaddress2);
emailintent2.putExtra(Intent.EXTRA_SUBJECT, CorAsunto);
emailintent2.putExtra(Intent.EXTRA_TEXT, message2);
ArrayList<Uri> uris = new ArrayList<Uri>();
uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.image1));
uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.image2));
emailintent2.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(emailintent2);
Mais quand j'attache l'image à l'email je reçois l'attache sans l'extension ".png" et c'est ce qui est un gros problème.
donc je pense que dans essayer de convertir ces images dessinables en Bitmap et aussi je pense que L'ArrayList devra être Bitmap. Je pense que je vais obtenir l'image a image définie dans le attachement.
Si c'est possible, quelqu'un peut me dire comment faire? Convertissez en Bitmap, ajoutez à Arraylist et attachez l'image.
Si je me trompe dans tout ce que j'ai dit, quelqu'un peut-il me donner une solution? J'ai besoin de joindre les images de Drawable à l'e-mail avec l'extension (.png).
5 réponses
Il y a 3 façons d'effectuer la conversion:
mettez le
ImageView
resource image
imageView.setImageResource(R.drawable.icon);
et puis obtenir l'image à partir d'imageView
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
Obtenir le drawable ressources directement par
Resource ID
Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.profile_circle);
positionnez l'image sur le
ImageView
alors convertissez-le enBitmap
(pour les svg/VectorDrawable trop)ImageView imgView = (ImageView) findViewById(R.id.ImageView); imgView.setImageResource(R.drawable.abc_image); z.setDrawingCacheEnabled(true); Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
Drawable myDrawable = getResources().getDrawable(R.drawable.anImage);
Bitmap anImage = ((BitmapDrawable) myDrawable).getBitmap();
Il peut Aussi être défini dans un fichier XML <bitmap>
élément.
voici le morceau de code, juste le vérifier:
Bitmap Icon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon);
direct:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
Vous pouvez configurer le bitmap plus si vous le définissez .xml drawable du fichier :
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@[package:]drawable/drawable_resource"
android:antialias=["true" | "false"]
android:dither=["true" | "false"]
android:filter=["true" | "false"]
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:mipMap=["true" | "false"]
android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
Bitmap icon = BitmapFactory.decodeResource(mContext.getResources(),
R.drawable.ic_launcher);
où mContext est le contexte de votre activité.