Yo estábamos tratando de adjuntar imágenes de Imagen a un correo electrónico (desde mi app a la app de Gmail)

He probado el siguiente código:

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

Pero cuando voy a adjuntar la imagen al correo electrónico que obtener la conecte sin la extensión «.png» y eso es un gran problema.

Así que creo que en tratar de convertir esta Imagen las imágenes de mapa de bits y también creo que el ArrayList tendrá que ser de mapa de bits. Creo que voy a tener la imagen de la imagen se define en el archivo adjunto.

Si es posible, alguien me puede decir cómo hacerlo? Convertir a mapa de bits, añadir a Arraylist y adjuntar la imagen.

Si estoy equivocado en todo lo que he dicho, alguien puede darme una solución? Necesito adjuntar las imágenes de Dibujable a la dirección de correo con la extensión (.png).

6 Comentarios

  1. 49

    Hay 3 maneras de llevar a cabo la conversión:

    1. Conjunto de la ImageView con resource image

      imageView.setImageResource(R.drawable.icon);

      y, a continuación, obtener el mapa de bits de imageView

      Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
    2. Obtener la imagen recurso directamente por Resource ID

      Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.profile_circle);
    3. Conjunto de la imagen en la ImageView, a continuación, convertirlo en Bitmap (obras svg/VectorDrawable demasiado)

      ImageView imgView = (ImageView) findViewById(R.id.ImageView);
      imgView.setImageResource(R.drawable.abc_image);
      z.setDrawingCacheEnabled(true);
      Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
  2. 27
    Drawable myDrawable = getResources().getDrawable(R.drawable.anImage);
    Bitmap anImage      = ((BitmapDrawable) myDrawable).getBitmap();

    También puede ser definido en un archivo XML con la <bitmap> elemento.

    • codingaffairs.blogspot.com/2016/06/…
    • esto debería ser más eficiente que otras soluciones, pero veo que getDrawable está en desuso
    • href=»http://stackoverflow.com/a/29146895/1848929″>stackoverflow.com/a/29146895/1848929
    • Esto no funciona. Puedo obtener ClassCastException: android.graphics.drawable.ColorDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
  3. 7

    aquí es el trozo de código , sólo echarle un vistazo:

    Bitmap Icon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon);
  4. 6

    La directa forma es :

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

    Puede configurar el mapa de bits más si se define en .xml dibujable archivo como :

    <?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"] />
  5. 6
    Bitmap icon = BitmapFactory.decodeResource(mContext.getResources(),
                R.drawable.ic_launcher);

    Donde mContext es su actividad de Contexto.

Dejar respuesta

Please enter your comment!
Please enter your name here