it-swarm.com.de

Wie kann ich eine Bitmap in einen Uri umwandeln?

Ich versuche Bilder mit Facebook, Twitter usw. mit SHARE INTENT von Android zu teilen.

Ich habe Code gefunden, um ein Bild an die Freigabeabsicht zu senden, aber dieser Code benötigt den URI der Bitmap: fullSizeImageUri

Dies ist der vollständige Code:

private void startShareMediaActivity(Bitmap image) {
    boolean isVideo=false;
    String mimeType="bmp";
    Uri fullSizeImageUri=null;
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.setType(mimeType);
    intent.putExtra(Intent.EXTRA_STREAM, fullSizeImageUri);
    try {
        startActivity(Intent.createChooser(intent, (isVideo ? "video" : "image")));
    } catch (Android.content.ActivityNotFoundException ex) { }
}

Kann mir jemand helfen, eine Bitmap in einen Uri umzuwandeln?

vielen Dank

31
String FILENAME = "image.png";
String PATH = "/mnt/sdcard/"+ FILENAME;
File f = new File(PATH);
Uri yourUri = Uri.fromFile(f);
22
KK_07k11A0585

Hier ist der Colin's Blog, der die einfache Methode zum Konvertieren der Bitmap in Uri hier klicken vorschlägt.

public Uri getImageUri(Context inContext, Bitmap inImage) {
  ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
  String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
  return Uri.parse(path);
}
58
Ajay

Die obige Lösung verwendet Media Store und speichert das Bild im Hauptbildordner des Benutzers, sodass es durch die Galerie/den Foto-Viewer sichtbar wird. Diese Lösung speichert es als temporäre Datei in den Apps-Daten. In diesem Beispiel ist inImage eine Bitmap und title eine Zeichenfolge für den Namen der Bilddatei.

    File tempDir= Environment.getExternalStorageDirectory();
    tempDir=new File(tempDir.getAbsolutePath()+"/.temp/");
    tempDir.mkdir();
    File tempFile = File.createTempFile(title, ".jpg", tempDir);
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    byte[] bitmapData = bytes.toByteArray();

    //write the bytes in file
    FileOutputStream fos = new FileOutputStream(tempFile);
    fos.write(bitmapData);
    fos.flush();
    fos.close();
    return Uri.fromFile(tempFile);
1
ocross
String picName = "pic.jpg";
        String PATH = Environment.getExternalStorageDirectory().getPath()+ picName;
        File f = new File(PATH);
        Uri yourUri = Uri.fromFile(f);
0

bitmap und compressFormat wie (PNG, JPG usw.) und Bildqualität in Prozent übergeben

public Uri getImageUri(Bitmap src, Bitmap.CompressFormat format, int quality) {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    src.compress(format, quality, os);

    String path = MediaStore.Images.Media.insertImage(getContentResolver(), src, "title", null);
    return Uri.parse(path);
}
0
Pankaj Talaviya

Sie können eine Bitmap-Datei nicht in einen URI umwandeln. Lesen Sie mehr über URI hier

URI ist ein Uniform Resource Identifier. Sie können die Bitmap jedoch in einen absoluten oder relativen URI wie folgt einfügen

Absolute: http://Android.com/yourImage.bmp
Relative: yourImage.bmp 
0
Aurelian Cotuna