2016-10-31 2 views
0

Hallo allerseits, ich bin ein Android-Entwickler zu schaffen, und ich versuche, eine Bilddatei aus einem ziehbaren Ressource zu erstellen, wie folgt aus:Wie eine Bilddatei von ziehbar Pfad

Bitmap btm = BitmapFactory.decodeResource(getResources(),R.drawable.image1); 
Bitmap btm = BitmapFactory.decodeFile(pathname); 
btm.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
File f = new File(Environment.getExternalStorageDirectory()+ File.separator + "temporary_file.jpg"); 
    try { 
     f.createNewFile(); 
     new FileOutputStream(f).write(bytes.toByteArray()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

Aber was ich brauche, ist erstellen sie die Datei aus dem Pfad von image1 starten, ich habe versucht, zu verwenden:

String pathname = currentLevel.getImagePath(); 
Bitmap btm = BitmapFactory.decodeFile(pathname); 
btm.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 

Aber es funktioniert nicht:

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: android.resource:/com.example.utente.guessimageferes/drawable/immagine1 (No such file or directory) 

auch mit

String pathname ="android.resource://com.example.utente.guessimageferes/drawable/immagine1" 

Ich habe das gleiche Problem, das es möglich machen, ist, dass ich will?

+0

Was ist currentLevel Objekt? – MatPag

+0

für jedes Level meines Spiels ich ein anderes Bild so currentLevel.getImagePath(); Gibt den Pfad des zeichnenden Bildes auf der aktuellen Ebene zurück. aber auch bei der manuellen eingabe des pfades habe ich den gleichen fehler – Rachid

+0

Was stimmt mit dem code im ersten block nicht? Außer der zweiten Zeile, die Sie entfernen sollten. – greenapps

Antwort

0

was ich brauche, ist vom Pfad der image1 Ausgang

Es gibt keinen Weg zu image1 ist. image1 ist eine Ressource. Es ist eine Datei auf Ihrer Entwicklungsmaschine. Es ist keine Datei auf dem Gerät. Daher hat es keinen Pfad.

+0

So kann ich das nicht nehmen: android.resource: //com.example.utente.guessimageferes/drawable/image1, und erstellen Sie eine Datei auf dem Speicher des Geräts? – Rachid

+0

@Rachid: Richtig. Das ist eine 'String'-Darstellung eines' Uri'. Es ist kein gültiger Dateipfad mehr als "http: // stackoverflow.com/questions/40349786/how-to-create-ein-image-file-from-drawable-path/40349970" ist ein gültiger Dateipfad. – CommonsWare

+0

Ok danke! So, jetzt habe ich verstanden, dass ich dynamisch die Drawable Resource ID setzen muss, ist das möglich? – Rachid