Autore Topic: salvare immagine  (Letto 1559 volte)

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
salvare immagine
« il: 19 Dicembre 2011, 14:16:52 CET »
0
Ciao a tutti,
nella mia applicazione ho una galleria di immagini e vorrei dar la possibilità all'utente di salvarle nella galleria del telefono...questo è il mio codice:

Codice (Java): [Seleziona]
@Override
                public boolean onOptionsItemSelected(MenuItem item) {
                    // Handle item selection
                    switch (item.getItemId()) {
                    case R.id.menuFinale:
                       
                        imgView.setDrawingCacheEnabled(true);
                        Bitmap bitmap = imgView.getDrawingCache();
                       
                       
                        String savedPath = Environment.getExternalStoragePublicDirectory(
                                Environment.DIRECTORY_PICTURES
                        ).toString();


                        File file = new File(savedPath,"img.jpg");
                        try
                        {
                           
                            FileOutputStream ostream = new FileOutputStream(file);
                            bitmap.compress(CompressFormat.JPEG, 100, ostream);
                            ostream.flush();
                            ostream.close();
                        }
                        catch (Exception e)
                        {
                            e.printStackTrace();
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
                        }

                       


                        return true;
                    default:
                        return super.onOptionsItemSelected(item);
                    }
                }

Il problema è che quando tocco l'opzione per salvare l'immagine finisco nel catch() e il messaggio di errore è un File not found...
Sapete dirmi dove sbaglio?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:salvare immagine
« Risposta #1 il: 19 Dicembre 2011, 14:35:50 CET »
0
Direi che come minimo dovresti postare lo stackTrace. Comunque nel 90% dei casi è il savedpath a non essere corretto per qualche ragione.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Re:salvare immagine
« Risposta #2 il: 19 Dicembre 2011, 15:11:31 CET »
0
Direi che come minimo dovresti postare lo stackTrace. Comunque nel 90% dei casi è il savedpath a non essere corretto per qualche ragione.

questa è la risposta del logcat:

Codice: [Seleziona]
12-19 15:10:44.259: W/System.err(24333): java.io.FileNotFoundException: /mnt/sdcard/Pictures/img.jpg (No such file or directory)
12-19 15:10:44.269: W/System.err(24333):         at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
12-19 15:10:44.269: W/System.err(24333):         at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
12-19 15:10:44.269: W/System.err(24333):         at java.io.FileOutputStream.<init>(FileOutputStream.java:94)
12-19 15:10:44.269: W/System.err(24333):         at java.io.FileOutputStream.<init>(FileOutputStream.java:66)
12-19 15:10:44.269: W/System.err(24333):         at com.italiandevteam.chuck.GalleriaChuck.onOptionsItemSelected(GalleriaChuck.java:145)
12-19 15:10:44.269: W/System.err(24333):         at android.app.Activity.onMenuItemSelected(Activity.java:2337)
12-19 15:10:44.269: W/System.err(24333):         at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:830)
12-19 15:10:44.269: W/System.err(24333):         at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:160)
12-19 15:10:44.269: W/System.err(24333):         at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:885)
12-19 15:10:44.269: W/System.err(24333):         at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:545)
12-19 15:10:44.269: W/System.err(24333):         at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
12-19 15:10:44.269: W/System.err(24333):         at android.view.View$PerformClick.run(View.java:9320)
12-19 15:10:44.269: W/System.err(24333):         at android.os.Handler.handleCallback(Handler.java:587)
12-19 15:10:44.269: W/System.err(24333):         at android.os.Handler.dispatchMessage(Handler.java:92)
12-19 15:10:44.269: W/System.err(24333):         at android.os.Looper.loop(Looper.java:150)
12-19 15:10:44.269: W/System.err(24333):         at android.app.ActivityThread.main(ActivityThread.java:4385)
12-19 15:10:44.279: W/System.err(24333):         at java.lang.reflect.Method.invokeNative(Native Method)
12-19 15:10:44.279: W/System.err(24333):         at java.lang.reflect.Method.invoke(Method.java:507)
12-19 15:10:44.279: W/System.err(24333):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
12-19 15:10:44.279: W/System.err(24333):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
12-19 15:10:44.279: W/System.err(24333):         at dalvik.system.NativeStart.main(Native Method)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:salvare immagine
« Risposta #3 il: 19 Dicembre 2011, 15:55:24 CET »
0
Se esplori il file system con il File Explorer del DDMS, il percorso  /mnt/sdcard/Pictures/ esiste?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Re:salvare immagine
« Risposta #4 il: 19 Dicembre 2011, 16:20:22 CET »
0
Se esplori il file system con il File Explorer del DDMS, il percorso  /mnt/sdcard/Pictures/ esiste?

no non esiste, vuol dire che non è il path corretto per la galleria immagini?  ???

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Re:salvare immagine
« Risposta #5 il: 26 Dicembre 2011, 18:59:13 CET »
0
Un aiuto? Come trovo il path corretto per salvare nella galleria immagini?

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:salvare immagine
« Risposta #6 il: 26 Dicembre 2011, 21:09:00 CET »
0
ciao,

dovresti crearti una cartella per le tue immagini, come descritto nella sezione "Saving Media Files" Camera | Android Developers