Create Images from File!

P

padde83

Ambitioniertes Mitglied
0
Hallo Zusammen ich versuche gerade Bilder von meinem Device in einer Auswahlliste darzustellen um sie anschließen nach der Selektierung auf einen Server mittels HttpPost hochzuladen.

Dies funktioniert auch einwandfrei nur die Fehlermeldung im Log stört mich bzw. verlangsamt sie die Darstellung der Bilder in der ListView.

In einem AsyncTask erstelle ich das Bild von dem File.
Code:
protected Bitmap doInBackground(File... params)
    {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 20;
        options.outMimeType = "image/jpeg";
        Bitmap bm = BitmapFactory.decodeFile(params[0].getAbsolutePath(), options);

        if (bm != null)
        {
            return Bitmap.createScaledBitmap(bm, 70, 70, true);
        }
Die Files bekomme ich über die Folgende Methode:
Code:
//start = Environment.getExternalStorageDirectory();
private void getImageListFromDevice(File file)
    {
        if (file.isDirectory())
        {
            File fileArray[] = file.listFiles();
            for (int i = 0; i < fileArray.length; i++)
            {
                this.getImageListFromDevice(fileArray[i]);
            }
        }
        else if (file.isFile() && !file.getParent().equals("/sdcard")) //$NON-NLS-1$
        {
            fileList.add(file);
            adapter = (UploadAdapter) listView.getAdapter();
            adapter.notifyDataSetChanged();
        }
    }
Mein Problem ist das ich im Log mehrmals die Ausgabe bekomme:
Code:
D/skia    (12355): --- SkImageDecoder::Factory returned null
D/skia    (12355): --- SkImageDecoder::Factory returned null
D/skia    (12355): --- SkImageDecoder::Factory returned null
D/skia    (12355): --- SkImageDecoder::Factory returned null
D/skia    (12355): --- SkImageDecoder::Factory returned null
D/dalvikvm(12355): GC freed 826 objects / 388344 bytes in 62ms
D/skia    (12355): --- SkImageDecoder::Factory returned null
D/skia    (12355): --- SkImageDecoder::Factory returned null
Ich nehme an das es daran liegt das der Imagedecoder den Typ des Files nicht korrekt bestimmen kann.

Gibt es eine Möglichkeit nur Files vom Device zu laden die den Typ image oder so haben? Oder wie könnte man diese Meldung umgehen?

hope 4 help!

Danke & Gruß
padde
 
Hat niemand Erfahrung damit.

Evtl. gibt es ja eine elegantere Lösung die Bilder vom Handy zu laden und sie dabei zu skalieren?

Mir fällt nur leider keiner mehr ein :sad:

Gruß
padde83
 
Versuchst du etwa mit der BitmapFactory Files zu laden die keine Bilder sind? :rolleyes2:

Ich vermisse da irgendwo
file.listFiles(new FileFilter(){
public boolean accept(File f){
if(f.getName().endsWith(".png")return true;
return false;
}
});
 
Servus Fr4gg0r,

also ich habe schon eine art Filter drinne. Ich scanne nur bestimmte Ordner wie /dcim/Camera und noch 2 bestimmte Ordner von denen ich ausgehen kann das dort nur Bilder enthalten sind.

Mein Problem war/ist das in dem Camera-Ordner auch mov-Dateien enthalten waren/sind. Deswegen der SKImageDecoder-Error. Es hat mich nur gewundert das dieser bei nur zwei Dateien ca.35 mal aufgerufen wird :sleep:

Aktuell habe ich also wie du beschrieben hast einen Filter drinne auf die endungen der Dateien. :smile:

Ich versuche aber davon weg zu kommen und direkt nur Dateien darzustellen die auch Bilder sind.

Über Images.Thumbnails.EXTERNAL_CONTENT_URI komme ich auf den Speicherort der von Android abgelegten Thumbails.

Diese hole ich mir dann über
Code:
 String[] projection = new String[] { Images.Thumbnails.IMAGE_ID,
         Images.Thumbnails.HEIGHT,
         Images.Thumbnails.WIDTH, Images.Thumbnails.DATA,
         Images.Thumbnails.KIND };
         Cursor cur = managedQuery(images, projection,
                        Images.Thumbnails.KIND + "=" + String.valueOf(Images.Thumbnails.MINI_KIND), null, 
                        Images.Thumbnails.IMAGE_ID + " ASC");
Über die Image_ID kann ich dann auf die Original Images zugreifen.

Jedoch weis ich nicht ob das wirklich sinnvoll ist 2 Datenbankabfragen zu tätigen um ein Image zu bekommen.

Gruß
padde83
 

Ähnliche Themen

Tiefkuehlpizza
  • Tiefkuehlpizza
Antworten
0
Aufrufe
767
Tiefkuehlpizza
Tiefkuehlpizza
M
  • myoggradio
Antworten
1
Aufrufe
776
myoggradio
M
B
Antworten
6
Aufrufe
1.049
jogimuc
J
Zurück
Oben Unten