1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. padde83, 20.09.2010 #1
    padde83

    padde83 Threadstarter Android-Hilfe.de Mitglied

    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
     
  2. padde83, 21.09.2010 #2
    padde83

    padde83 Threadstarter Android-Hilfe.de Mitglied

    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
     
  3. Fr4gg0r, 21.09.2010 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    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;
    }
    });
     
  4. padde83, 23.09.2010 #4
    padde83

    padde83 Threadstarter Android-Hilfe.de Mitglied

    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
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Verständnisprobleme: APK Expansion Files für eine APK > 100MB Android App Entwicklung 10.09.2017
[RÜCKMELDUNG FEHLT] Text und Bilder in View einbinden Android App Entwicklung 26.03.2017
Uri oder File path als String speichern zum wiederauslesen Android App Entwicklung 26.01.2017
Probleme mit NFC File Transfer Android App Entwicklung 21.01.2017
Wie kann ich die Anzahl von Images im Drawableordner zählen? Android App Entwicklung 08.01.2017
DDMS FIle Explorer keine Dateien mehr vorhanden Android App Entwicklung 16.11.2016
Clientseitige Speicherung der Bilder Android App Entwicklung 31.10.2016
schleife für image view animations Android App Entwicklung 24.10.2016
Du betrachtest das Thema "Create Images from File!" im Forum "Android App Entwicklung",