1

Ich versuche Bildpräsentations- in meiner Anwendung zu schließen und alles funktioniert, aber der Anteil Chooser dauert lange Zeit auf Geräte erscheinenTeilen Absicht dauert lange Zeit erscheinen

hier ist, was ich tue:

ich habe Image „items_details_image“ und ich möchte ihr image teilen, sie senden durch whatsapp zu können und andere Anwendungen

void ShareImg() { 
    try { 
     Uri bmpUri = getLocalBitmapUri(items_details_image); 
     if (bmpUri != null) { 
      // Construct a ShareIntent with link to image 
      Intent shareIntent = new Intent(); 
      shareIntent.setAction(Intent.ACTION_SEND); 
      shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri); 
      shareIntent.setType("image/*"); 
      // Launch sharing dialog for image 
      startActivity(Intent.createChooser(shareIntent, "Share Image")); 
     } else { 
      // ...sharing failed, handle error 
     } 
    } catch (Exception e) { 

    } 
} 

hier ist, wie ich Bitmap von Bild-URL

bekommen

Ich weiß nicht, warum es dauert länger als üblich mit anderen Anwendungen auf dem gleichen Gerät wie Galerie zu vergleichen oder was auch immer

Antwort

1

Sie tun Disk-I/O auf dem Hauptanwendungsthread, in getLocalBitmapUri() . Dadurch wird die Benutzeroberfläche eingefroren, solange Sie Ihre Bitmap auf die Festplatte schreiben müssen.

+0

also sollte ich eine asynctask machen, um die getLocalBitmapUri zu erhalten? –

+1

@YazanAllahham: Noch besser wäre es, etwas anderes zu tun. Diese 'ImageView' hat ihr Bild von irgendwo. Wenn das "irgendwo" bereits an einem "Uri" erreichbaren Ort existiert, benutze einfach die Originalquelle des Bildes. – CommonsWare

+0

Wooow! das war fantastisch ! Vielen Dank. Seit ich UniversalImageLoader verwende, könnte ich die Image Uri im onLoadingComplete-Event des ImageLoaders haben! ... du hast mir Stunden gespart !!! –

Verwandte Themen