1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Image erstellen + Thumbnail

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Unicate, 23.09.2010.

  1. Unicate, 23.09.2010 #1
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Hi alle zusammen!

    Ich habe einen REST-Server auf dem Android laufen und empfange Bilder, welche auch korrekt auf dem Telefon ankommen. Diese Bilder speichere ich in eine Datei auf der SDCard.

    Was ich möchte:

    Das Bild soll in die Datenbank eingetragen werden und sofort in meiner App verfügbar sein (Ich brauche Id, etc).

    Was ich dafür im Moment tue:
    Siehe hier:
    Code:
        public long addImage(String targetFolder, String mime, InputStream in, String title, String description) {
            long id = -1;
            File file = createFile(targetFolder, mime);
            if(null != file) {
                try {
                    FileOutputStream out = new FileOutputStream(file);
                    byte[] b = new byte[1024];
                    int s = 0;
                    long size = 0;
                    while((s = in.read(b, 0, 1024)) > 0) {
                        out.write(b,0,s);
                        size+=s;
                        if(in.available() == 0) {
                            break;
                        }
                    }
                    out.flush();
                    out.close();
                    MediaScanner scanner = new MediaScanner(_context);
                    scanner.scanFile(file.getCanonicalPath(), mime);
                    String url = MediaStore.Images.Media.insertImage(_contentResolver, BitmapFactory.decodeFile(file.getCanonicalPath()), title, description);
                    Uri uri = Uri.parse(url);
    
                    id = Long.valueOf(uri.toString().substring(uri.toString().lastIndexOf(File.separator)+1));
                    return id;
                } catch (Exception e) {
                    Log.w(TAG, e);
                }
            }
            return id;
        }
    
    Das funktioniert auch soweit außer:

    Was das Programm tut:
    Es legt immer 2 Bilder an. Eins an dem Ort wo es sein soll und das andere unter den Kamerabildern.


    Was mache ich falsch?
     
  2. BenOtto, 23.09.2010 #2
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Also erstmal fällt mir auf, dass du den Konstruktor mit Pfad und Mime-Type benutzt. Dabei ist mime wahrscheinlich dein Bildname, vielleicht solltest du die Variablen umbenennen.

    Des Weiteren würde ich vermuten, dass die Zeile

    String url = MediaStore.Images.Media.insertImage(_contentResolver, BitmapFactory.decodeFile(file.getCanonicalPath()), title, description);

    dafür sorgt, dass dein zweites Bild erzeugt wird.
     

Diese Seite empfehlen