Autore Topic: Aprire un'immagine in /res/drawable con visualizzatore nativo  (Letto 3245 volte)

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Aprire un'immagine in /res/drawable con visualizzatore nativo
« il: 04 Maggio 2011, 22:58:43 CEST »
0
Codice (Java): [Seleziona]
 Salve a tutti! Sono nuovo di questo forum e anche della programmazione in ambiente Android. Ho questo problema:
Da un'Activity vorrei lanciare la visualizzazione di un'immagine presente in /res/drawable tramite un visualizzatore già installato sul dispositivo. Sono riuscito ad aprire un'immagine presente sull'sd ma vorrei sapere se è possibile aprire invece qualcosa che è contenuto già nel package senza utilizzare ImageView.
Il codice che funziona è:

Intent intent = new Intent();
            intent.setAction(android.content.Intent.ACTION_VIEW);
               File file = new File("/sdcard/DCIM/100MSDCF/DSC00006.jpg");
               intent.setDataAndType(Uri.fromFile(file), "image/*");
               startActivity(intent)

quello che non funziona è:

Resources res = getResources();
               String leg = res.getString(R.drawable.legenda);
               Intent intent = new Intent();
               intent.setAction(android.content.Intent.ACTION_VIEW);
               File file = new File(leg);
               intent.setDataAndType(Uri.fromFile(file), "image/*");
               startActivity(intent);

Potreste aiutarmi? Grazie

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #1 il: 04 Maggio 2011, 23:46:18 CEST »
0
Codice (Java): [Seleziona]
 Salve a tutti! Sono nuovo di questo forum e anche della programmazione in ambiente Android. Ho questo problema:
Da un'Activity vorrei lanciare la visualizzazione di un'immagine presente in /res/drawable tramite un visualizzatore già installato sul dispositivo. Sono riuscito ad aprire un'immagine presente sull'sd ma vorrei sapere se è possibile aprire invece qualcosa che è contenuto già nel package senza utilizzare ImageView.
Il codice che funziona è:

Intent intent = new Intent();
            intent.setAction(android.content.Intent.ACTION_VIEW);
               File file = new File("/sdcard/DCIM/100MSDCF/DSC00006.jpg");
               intent.setDataAndType(Uri.fromFile(file), "image/*");
               startActivity(intent)

quello che non funziona è:

Resources res = getResources();
               String leg = res.getString(R.drawable.legenda);
               Intent intent = new Intent();
               intent.setAction(android.content.Intent.ACTION_VIEW);
               File file = new File(leg);
               intent.setDataAndType(Uri.fromFile(file), "image/*");
               startActivity(intent);

Potreste aiutarmi? Grazie

dovresti salvare il tuo file nella sd prima di aprirlo! Uri.fromFile non funziona se il file non c'è!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #2 il: 05 Maggio 2011, 00:38:17 CEST »
0
Codice (Java): [Seleziona]
 
Ok. Quindi non c'è un modo per visualizzare un' immagine tramite l'App nativa se l'immagine è nelle risorse del progetto?
Devo prima per forza salvarla sul device?
« Ultima modifica: 05 Maggio 2011, 00:42:15 CEST da jamirov »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #3 il: 05 Maggio 2011, 10:01:54 CEST »
0
perché ogni post lo cominci con il tag code?
^_^
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #4 il: 05 Maggio 2011, 11:41:35 CEST »
0
Scusa, non l'ho inserito volutamente.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #5 il: 05 Maggio 2011, 12:25:41 CEST »
0
non c'è bisogno di scusarti, la mia era solo una domanda.
 :D
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #6 il: 05 Maggio 2011, 13:02:05 CEST »
0
In ogni caso quello che vorrei capire è se c'è un modo per passare risorse interne al progetto ad un'Activity esterna. Ho visto per ora che l'unico modo è usare un Uri e volevo sapere se c'è un altra maniera. Se non c'è, significa che dovrei salvare il file su sdcard, farlo leggere e poi distruggerlo.

Grazie

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #7 il: 16 Maggio 2011, 16:31:19 CEST »
0
Ciao a tutti,

ho provato a risolvere il problema cercando di salvare l'immagine sulla sdcard per poi farla leggere ad un'applicazione esterna.
Credo che funzionerebbe, se solo riuscissi a scrivere sulla sdcard. Eseguendo il debug, si vede che al momento di creare il nuovo file con il metodo createNewFile, si scatena l'eccezione.

Il codice è:
Codice (Java): [Seleziona]
butLegenda.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Apre finestra con legenda prodotto
               
               
                StringBuffer createdFile = new StringBuffer();
                Resources res = getResources();
                Bitmap resourceImage = BitmapFactory.decodeResource(res, R.drawable.legenda);
                File path = new File(Environment.getExternalStorageDirectory().toString() + "/mytemp");
                File templegenda = new File(path, "legenda.jpg");
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                resourceImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
                byte b[] = bytes.toByteArray();

                try
                {                      
                    templegenda.createNewFile();
                    OutputStream filoutputStream = new FileOutputStream(templegenda);
                    filoutputStream.write(b);
                    filoutputStream.flush();
                    filoutputStream.close();
                    String a = templegenda.getAbsolutePath();
                    createdFile.append(a);
                }
                catch (IOException e)
                {
                }              
     
                Intent intent = new Intent();
                intent.setAction(android.content.Intent.ACTION_VIEW);              
                intent.setDataAndType(Uri.fromFile(templegenda),"image/*");
                startActivity(intent);              
       
               
            }
        });
Il manifest contiene i permessi di scrittura sulla card esterna:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.mypackage.prova"
     android:versionCode="1"
     android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
    <permission-group android:name="STORAGE"></permission-group>
    <application android:theme="@style/FAQFixTheme" android:icon="@drawable/faqfixicon">
        <uses-library android:name="com.google.android.maps" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <activity android:label="@string/app_name" android:name="FMain">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Pagina1"
                          android:label="@string/app_name">
                <intent-filter>
                                <action android:name="android.intent.action.SHOW_CURRENT"/>
                                <category android:name="android.intent.category.CATEGORY_PREFERENCE"/>
                        </intent-filter>  ecc.....
La card esterna è montata e accessibile da qualsiasi applicazione.

C'è forse qualche altra cosa che bisogna fare per poter scrivere sulla scheda?


Vi prego, aiutatemi! Grazie
« Ultima modifica: 16 Maggio 2011, 16:35:14 CEST da 7h38ugg3r »

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #8 il: 16 Maggio 2011, 16:32:53 CEST »
0
Scusate, nel codice precedente c'era una riga sbagliata che veine fuori da uno dei miei tentativi...

la riga giusta è:

File path = new File(Environment.getExternalStorageDirectory().toString() + "/mytemp");

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #9 il: 16 Maggio 2011, 16:35:55 CEST »
0
Dovresti postare il logcat.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #10 il: 16 Maggio 2011, 16:51:11 CEST »
0
Ciao, ecco il Logcat. Grazie

Codice: [Seleziona]
05-16 16:50:04.262: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:04.272: INFO/ActivityManager(1190): Starting activity: Intent { cmp=com.cnclabtech.faqfix/.Pagina1 }
05-16 16:50:04.872: INFO/ActivityManager(1190): Displayed activity com.cnclabtech.faqfix/.Pagina1: 585 ms (total 585 ms)
05-16 16:50:04.922: INFO/RoadSync(1712):  - Acquiring partial wakelock.
05-16 16:50:04.962: INFO/global(1712): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
05-16 16:50:05.632: INFO/RoadSync(1712):  Connect (1).
05-16 16:50:05.632: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:06.222: INFO/RoadSync(1712):  - Acquiring partial wakelock.
05-16 16:50:06.242: INFO/global(1712): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
05-16 16:50:06.562: DEBUG/dalvikvm(1712): GC freed 5642 objects / 459192 bytes in 211ms
05-16 16:50:06.812: INFO/RoadSync(1712):  Connect (1).
05-16 16:50:06.812: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:07.392: INFO/RoadSync(1712):  - Acquiring partial wakelock.
05-16 16:50:07.432: INFO/global(1712): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
05-16 16:50:07.832: DEBUG/dalvikvm(4841): GC freed 834 objects / 72200 bytes in 159ms
05-16 16:50:08.252: INFO/RoadSync(1712):  Connect (1).
05-16 16:50:08.252: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:08.692: DEBUG/dalvikvm(4841): GC freed 206 objects / 8928 bytes in 59ms
05-16 16:50:09.152: INFO/RoadSync(1712):  - Acquiring partial wakelock.
05-16 16:50:09.302: INFO/global(1712): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
05-16 16:50:09.362: INFO/ActivityManager(1190): Starting activity: Intent { act=android.intent.action.VIEW dat=file:///sdcard/mytemp/legenda.jpg typ=image/* cmp=com.metago.astro/.SimpleImageViewer }
05-16 16:50:09.502: ERROR/SimpleImageViewer(3051): File not found.  What happened? java.io.FileNotFoundException
05-16 16:50:09.542: DEBUG/SimpleImageViewer(3051): showing gallery
05-16 16:50:09.822: INFO/ActivityManager(1190): Displayed activity com.metago.astro/.SimpleImageViewer: 394 ms (total 394 ms)
05-16 16:50:09.862: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f070006
05-16 16:50:09.862: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020001
05-16 16:50:09.862: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f040000
05-16 16:50:09.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f080029
05-16 16:50:09.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000
05-16 16:50:09.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000
05-16 16:50:09.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f040000
05-16 16:50:09.922: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f050000
05-16 16:50:09.922: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020005
05-16 16:50:09.922: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020004
05-16 16:50:09.952: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f040000
05-16 16:50:09.952: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000
05-16 16:50:09.952: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000
05-16 16:50:10.042: DEBUG/dalvikvm(1712): GC freed 5036 objects / 403168 bytes in 237ms
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f08001f
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f02006b
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f02006c
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f08030f
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020136
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020134
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f050000
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f060008
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000
05-16 16:50:10.202: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000
05-16 16:50:10.242: INFO/RoadSync(1712):  Connect (1).
05-16 16:50:10.242: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:10.382: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f0a0277
05-16 16:50:10.382: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f02027e
05-16 16:50:10.382: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f02027e
05-16 16:50:10.602: DEBUG/BatStatWidget(1998): Service - onReceive
05-16 16:50:10.872: INFO/RoadSync(1712):  - Acquiring partial wakelock.
05-16 16:50:10.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f090000
05-16 16:50:10.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020215
05-16 16:50:10.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020215
05-16 16:50:10.892: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f050000
05-16 16:50:10.892: INFO/global(1712): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
05-16 16:50:11.122: INFO/RoadSync(1712):  Connect (1).
05-16 16:50:11.132: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:11.852: INFO/RoadSync(1712):  - Acquiring partial wakelock.
05-16 16:50:11.862: INFO/global(1712): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
05-16 16:50:12.322: INFO/RoadSync(1712):  - Starting background change watcher timer (180000).
05-16 16:50:12.332: INFO/RoadSync(1712):  Connect (1).
05-16 16:50:12.332: INFO/RoadSync(1712):  - Releasing partial wakelock.
05-16 16:50:19.842: INFO/RoadSync(1712):  onDataConnectionStateChanged() IGNORED - 2
05-16 16:50:19.842: INFO/fota(1658): [1658][util]Changed to Home network
05-16 16:50:19.852: DEBUG/NetworkLocationProvider(1190): onDataConnectionStateChanged 3
05-16 16:50:19.852: DEBUG/MobileDataStateTracker(1190): default Received state= CONNECTED, old= CONNECTED, reason= (unspecified), apnTypeList= default,supl
05-16 16:50:19.872: DEBUG/MobileDataStateTracker(1190): replacing old mInterfaceName (rmnet0) with rmnet0 for supl
05-16 16:50:19.912: INFO/ActivityManager(1190): Start proc com.csipsimple for broadcast com.csipsimple/.service.DeviceStateReceiver: pid=4875 uid=10087 gids={3003, 3002, 1007, 1015}
05-16 16:50:20.442: INFO/dalvikvm(4875): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
05-16 16:50:20.482: INFO/dalvikvm(4875): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=32)
05-16 16:50:21.522: INFO/ActivityManager(1190): Process com.csipsimple (pid 4875) has died.
05-16 16:50:22.992: WARN/ResourceType(1190): Skipping entry 0x7f040006 in package table 0 because it is not complex!
05-16 16:50:23.002: WARN/ResourceType(1190): Skipping entry 0x7f040005 in package table 0 because it is not complex!
« Ultima modifica: 16 Maggio 2011, 17:04:50 CEST da Ricky` »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #11 il: 16 Maggio 2011, 16:54:55 CEST »
0
L'unica riga di eccezione è questa:
Codice: [Seleziona]
05-16 16:50:09.362: INFO/ActivityManager(1190): Starting activity: Intent { act=android.intent.action.VIEW dat=file:///sdcard/mytemp/legenda.jpg typ=image/* cmp=com.metago.astro/.SimpleImageViewer }
05-16 16:50:09.502: ERROR/SimpleImageViewer(3051): File not found.  What happened? java.io.FileNotFoundException

Esiste la directory mytemp sulla sdcard?

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #12 il: 16 Maggio 2011, 17:15:51 CEST »
0
Ciao,

non esisteva e l'ho creata ma il risultato è lo stesso. In realtà anche se non aggiungo la directory /mytemp e cioè tento di scrivere sotto /sdcard oltanto, il risultato è lo stesso. E' come se non mi permettesse di scrivere nulla sulla scheda esterna.

Ecco il logcat:
Codice (Java): [Seleziona]
05-16 17:13:18.232: INFO/ActivityManager(1190): Starting activity: Intent { act=android.intent.action.VIEW dat=file:///sdcard/mytemp/legenda.jpg typ=image/* cmp=com.metago.astro/.SimpleImageViewer }
05-16 17:13:18.282: INFO/ActivityManager(1190): Start proc com.metago.astro for activity com.metago.astro/.SimpleImageViewer: pid=6107 uid=10105 gids={3003, 1015}
« Ultima modifica: 16 Maggio 2011, 17:49:18 CEST da jamirov »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #13 il: 16 Maggio 2011, 17:45:49 CEST »
0
hai provato a leggere questo?
leggiti l'ultima risposta.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline jamirov

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia X8
  • Sistema operativo:
    Windows 7
Re:Aprire un'immagine in /res/drawable con visualizzatore nativo
« Risposta #14 il: 16 Maggio 2011, 17:59:44 CEST »
0
Si, l'ho letto e ho provato a salvare l'immagine nella directory del telefono relativa ai file dell'applicazione, che sarebbe ad esempio /data/data/com.mypackage.prova/files.
Eseguendo il debug, sembra che scriva nella directory però quando parte l'applicazione esterna (ad esempio il lettore nativo del telefono), non trova il file in questa directory.

Ecco il codice modificato:

Codice (Java): [Seleziona]
StringBuffer createdFile = new StringBuffer();
                Resources res = getResources();
                Bitmap resourceImage = BitmapFactory.decodeResource(res, R.drawable.legenda);
                File path = getApplicationContext().getFilesDir();   // Questa volta salva nella directory dei file dell'applicazione
                File templegenda = new File(path, "legenda.jpg");
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                resourceImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
                byte b[] = bytes.toByteArray();

                try
                {                      
                        templegenda.createNewFile();
                    OutputStream filoutputStream = new FileOutputStream(templegenda);
                    filoutputStream.write(b);
                    filoutputStream.flush();
                    filoutputStream.close();
                    String a = templegenda.getAbsolutePath();
                    createdFile.append(a);
                }
                catch (IOException e)
                {
                }              
     
                Intent intent = new Intent();
                intent.setAction(android.content.Intent.ACTION_VIEW);              
                intent.setDataAndType(Uri.fromFile(templegenda),"image/*");
                startActivity(intent);

ed il logcat:

Codice (Java): [Seleziona]
05-16 17:56:34.882: INFO/ActivityManager(1190): Process com.ebay.mobile:notifications (pid 7066) has died.
05-16 17:56:35.873: INFO/ActivityManager(1190): Starting activity: Intent { cmp=com.cnclabtech.faqfix/.Pagina1 }
05-16 17:56:36.942: INFO/ActivityManager(1190): Displayed activity com.cnclabtech.faqfix/.Pagina1: 1028 ms (total 1028 ms)
05-16 17:56:40.572: DEBUG/dalvikvm(7032): GC freed 1041 objects / 80032 bytes in 68ms
05-16 17:56:41.312: DEBUG/dalvikvm(7032): GC freed 241 objects / 10552 bytes in 56ms
05-16 17:56:41.882: INFO/ActivityManager(1190): Starting activity: Intent { act=android.intent.action.VIEW dat=file:///data/data/com.cnclabtech.faqfix/files/legenda.jpg typ=image/* cmp=com.metago.astro/.SimpleImageViewer }
05-16 17:56:41.922: INFO/ActivityManager(1190): Start proc com.metago.astro for activity com.metago.astro/.SimpleImageViewer: pid=7073 uid=10105 gids={3003, 1015}
05-16 17:56:42.342: INFO/dalvikvm(7073): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
05-16 17:56:42.412: INFO/dalvikvm(7073): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=36)
05-16 17:56:42.432: INFO/ActivityThread(7073): Publishing provider com.metago.astro.extension: com.metago.astro.provider.FileExtensionProvider
05-16 17:56:42.642: INFO/ActivityThread(7073): Publishing provider com.metago.astro.filesystem: com.metago.astro.provider.FileSystemProvider
05-16 17:56:42.652: INFO/ActivityThread(7073): Publishing provider com.metago.astro.network.sftp: com.metago.astro.provider.FTPFileProvider
05-16 17:56:42.662: INFO/ActivityThread(7073): Publishing provider com.metago.astro.compressed: com.metago.astro.provider.CompressedFileProvider
05-16 17:56:42.812: INFO/ActivityManager(1190): Process com.fsck.k9 (pid 6541) has died.
05-16 17:56:43.032: ERROR/SimpleImageViewer(7073): File not found.  What happened? java.io.FileNotFoundException
05-16 17:56:43.202: DEBUG/SimpleImageViewer(7073): showing gallery
05-16 17:56:43.342: INFO/ActivityManager(1190): Displayed activity com.metago.astro/.SimpleImageViewer: 1436 ms (total 1436 ms)
05-16 17:56:43.472: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f070006
05-16 17:56:43.472: WARN/ResourceType(1190): Resources don'
t contain package for resource number 0x7f020001
05-16 17:56:43.472: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f040000
05-16 17:56:43.532: WARN/ResourceType(1190): Resources don'
t contain package for resource number 0x7f080029
05-16 17:56:43.532: WARN/ResourceType(1190): Resources don't contain package for resource number 0x7f020000

Sto cominciando a perdere le speranze... :-X