Come convertire un’immagine disegnabile da risorse in una bitmap

Stavo cercando di albind immagini da Drawable a un’email (dalla mia app all’app Gmail)

Ho provato il prossimo codice:

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 uris = new ArrayList(); 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); 

Ma quando allego l’immagine alla mail ottengo il collegamento senza l’estensione “.png” e questo è un grosso problema.

Quindi penso di provare a convertire queste immagini disegnabili in Bitmap e inoltre penso che l’ArrayList debba essere Bitmap. Penso che otterrò che l’immagine abbia un’immagine definita nell’allegato.

Se è ansible, qualcuno può dirmi come si fa? Converti in bitmap, aggiungi a Arraylist e allega l’immagine.

Se sbaglio in tutto ciò che ho detto, qualcuno può darmi una soluzione? Ho bisogno di albind le immagini da Drawable alla mail con l’estensione (.png).

Esistono 3 modi per eseguire la conversione:

  1. Imposta il ImageView con resource image

     imageView.setImageResource(R.drawable.icon); 

    e quindi ottenere la bitmap da imageView

     Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap(); 
  2. Ottieni la risorsa estraibile direttamente Resource ID

     Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.profile_circle); 
  3. Imposta l’immagine su ImageView e convertila in Bitmap (funziona anche per svg / VectorDrawable)

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

Inoltre può essere definito in un file XML con l’elemento .

La via diretta è:

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image); 

Puoi configurare la bitmap di più se la definisci nel file .xml drawable come:

 < ?xml version="1.0" encoding="utf-8"?>  

ecco il pezzo di codice, basta controllare:

 Bitmap Icon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon); 
 Bitmap icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher); 

Dove mContext è la tua attività Contesto.