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).

Solutions Collecting From Web of "Come convertire un’immagine disegnabile da risorse in una bitmap"

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.