CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 13
Discussione:

salve file (immagine) in sdcard

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid


    Registrato dal
    Jun 2013
    Messaggi
    303

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    salve file (immagine) in sdcard

    salve

    sto cercando di salvare una immagine nella sdcard che poi dovrei usare da caricare come icone dell'app

    codice:
    			String tmpImg = String.valueOf(System.currentTimeMillis()) + "_robertoNuovo_.png"; 
    			 
    		    OutputStream os = null; 
    		    try { 
    		      String loc = Environment.getExternalStorageDirectory() +"/DCIM/"; 
    		      
    			os = new FileOutputStream(loc + tmpImg); 
    			newBitmap.compress(CompressFormat.PNG, 100, os);
    			
    		    } catch(IOException e) { 
    		      Log.e("combineImages", "problem combining images", e); 
    		    }
    il codice viene eseguito e non da errore ma l'immagine
    non ce non capisco come mai ....

    edit

    ho anche aggiunto i permessi

    <uses-permission android:name="android.permission.READ_EXTERNAL_STO RAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ORAGE"/>
    Ultima modifica di bruceAdroid; 17-05-14 alle 19:05

  2.  
  3. #2
    Baby Droid


    Registrato dal
    May 2014
    Località
    Cagliari
    Messaggi
    20
    Smartphone
    GT I9305 - Z3

    Ringraziamenti
    1
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Quote Originariamente inviato da bruceAdroid Visualizza il messaggio
    salve

    sto cercando di salvare una immagine nella sdcard che poi dovrei usare da caricare come icone dell'app

    codice:
                String tmpImg = String.valueOf(System.currentTimeMillis()) + "_robertoNuovo_.png"; 
                 
                OutputStream os = null; 
                try { 
                  String loc = Environment.getExternalStorageDirectory() +"/DCIM/"; 
                  
                os = new FileOutputStream(loc + tmpImg); 
                newBitmap.compress(CompressFormat.PNG, 100, os);
                
                } catch(IOException e) { 
                  Log.e("combineImages", "problem combining images", e); 
                }
    il codice viene eseguito e non da errore ma l'immagine
    non ce non capisco come mai ....

    edit

    ho anche aggiunto i permessi

    <uses-permission android:name="android.permission.READ_EXTERNAL_STO RAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ORAGE"/>
    Ciao
    prova ad inserire os.close(); subito dopo newBitmap.compress(CompressFormat.PNG, 100, os);

  4. #3
    Senior Droid


    Registrato dal
    Jun 2013
    Messaggi
    303

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da DesoDroid Visualizza il messaggio
    Ciao
    prova ad inserire os.close(); subito dopo newBitmap.compress(CompressFormat.PNG, 100, os);
    Ciao grazie provo!
    dici che non fa il flush perchè non chiudo lo stream ? non ci avevo pensato
    p.s
    in java c'è il garbage collector ?

  5. #4
    Baby Droid


    Registrato dal
    May 2014
    Località
    Cagliari
    Messaggi
    20
    Smartphone
    GT I9305 - Z3

    Ringraziamenti
    1
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Quote Originariamente inviato da bruceAdroid Visualizza il messaggio
    in java c'è il garbage collector ?
    Si, in questo caso ti consiglio di utilizzarlo prima di creare il Bitmap chiamando System.gc();
    Ti aiuta a prevenire errori di outOfMemory.

  6. #5
    Senior Droid


    Registrato dal
    Jun 2013
    Messaggi
    303

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da DesoDroid Visualizza il messaggio
    Si, in questo caso ti consiglio di utilizzarlo prima di creare il Bitmap chiamando System.gc();
    Ti aiuta a prevenire errori di outOfMemory.
    non capisco questo il codice
    codice:
    			String tmpImg = String.valueOf(System.currentTimeMillis()) + "_robertoNuovobi_.png"; 
    			 
    		    OutputStream os = null; 
    		    try { 
    
    		    	String loc = Environment.getExternalStorageDirectory() +"/DCIM/";
    	              
    		          os = new FileOutputStream(loc + tmpImg); 
    		          newBitmap.compress(CompressFormat.PNG, 100, os);		    	
    		          os.close();
    				  
    		          Toast.makeText(getApplicationContext(), "sd ok", Toast.LENGTH_LONG).show();
    
    		      
    		      
    		    } catch(IOException e) { 
    		      Log.e("combineImages", "problem combining images", e); 
    		    }
    però non salva l'immagine o io non la trovo questo il file manifest

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.androidimageprocessing"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="write_ex"/>
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.test.androidimageprocessing.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

  7. #6
    Baby Droid


    Registrato dal
    May 2014
    Località
    Cagliari
    Messaggi
    20
    Smartphone
    GT I9305 - Z3

    Ringraziamenti
    1
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Quote Originariamente inviato da bruceAdroid Visualizza il messaggio
    non capisco questo il codice
    codice:
    			String tmpImg = String.valueOf(System.currentTimeMillis()) + "_robertoNuovobi_.png"; 
    			 
    		    OutputStream os = null; 
    		    try { 
    
    		    	String loc = Environment.getExternalStorageDirectory() +"/DCIM/";
    	              
    		          os = new FileOutputStream(loc + tmpImg); 
    		          newBitmap.compress(CompressFormat.PNG, 100, os);		    	
    		          os.close();
    				  
    		          Toast.makeText(getApplicationContext(), "sd ok", Toast.LENGTH_LONG).show();
    
    		      
    		      
    		    } catch(IOException e) { 
    		      Log.e("combineImages", "problem combining images", e); 
    		    }
    però non salva l'immagine o io non la trovo questo il file manifest

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.androidimageprocessing"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="write_ex"/>
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.test.androidimageprocessing.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    prova a metterci os.flush(); prima di os.close(); e fammi sapere

  8. #7
    Senior Droid


    Registrato dal
    Jun 2013
    Messaggi
    303

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    Allora il codice in realtà funziona, ma l'immagine si vede nella cartella solo un bel po non si quanto o forse dopo che riavvio il cell e un comportamento alquanto strano

    Inviato dal mio LG-E610 usando Androidiani App

  9. #8
    Baby Droid


    Registrato dal
    May 2014
    Località
    Cagliari
    Messaggi
    20
    Smartphone
    GT I9305 - Z3

    Ringraziamenti
    1
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Quote Originariamente inviato da bruceAdroid Visualizza il messaggio
    Allora il codice in realtà funziona, ma l'immagine si vede nella cartella solo un bel po non si quanto o forse dopo che riavvio il cell e un comportamento alquanto strano

    Inviato dal mio LG-E610 usando Androidiani App
    Prova cosi:

    aggiungi questa funzione

    private void updateGallery(String p_path){
    File newFile = new File (p_path);
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.DATA, p_path);
    values.put(MediaStore.Images.Media.DATE_TAKEN, newFile.lastModified());

    Uri mImageCaptureUri = getActivity().getContentResolver()
    .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_U RI,values);

    // to notify change
    getActivity().getContentResolver().notifyChange(
    Uri.parse("file://" + p_path),null);
    }

    e la chiami dopo os.close();

    cosi

    updateGallery(loc + tmpImg);

    ciao fammi sapere

  10. #9
    Senior Droid


    Registrato dal
    Jun 2013
    Messaggi
    303

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da DesoDroid Visualizza il messaggio
    Prova cosi:

    aggiungi questa funzione

    private void updateGallery(String p_path){
    File newFile = new File (p_path);
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.DATA, p_path);
    values.put(MediaStore.Images.Media.DATE_TAKEN, newFile.lastModified());

    Uri mImageCaptureUri = getActivity().getContentResolver()
    .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_U RI,values);

    // to notify change
    getActivity().getContentResolver().notifyChange(
    Uri.parse("file://" + p_path),null);
    }

    e la chiami dopo os.close();

    cosi

    updateGallery(loc + tmpImg);

    ciao fammi sapere
    Ok provo
    bisogna forzare l'aggiornamento dell'archivio ?
    comunque confermo che avviene al riavvio

  11. #10
    Senior Droid


    Registrato dal
    Jun 2013
    Messaggi
    303

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da DesoDroid Visualizza il messaggio
    Prova cosi:

    aggiungi questa funzione

    private void updateGallery(String p_path){
    File newFile = new File (p_path);
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.DATA, p_path);
    values.put(MediaStore.Images.Media.DATE_TAKEN, newFile.lastModified());

    Uri mImageCaptureUri = getActivity().getContentResolver()
    .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_U RI,values);

    // to notify change
    getActivity().getContentResolver().notifyChange(
    Uri.parse("file://" + p_path),null);
    }

    e la chiami dopo os.close();

    cosi

    updateGallery(loc + tmpImg);

    ciao fammi sapere
    Ciao scusa il ritardo (per via del lavoro)

    il codice funziona ora sto cercando di capirlo

    codice:
    		File newFile = new File (p_path); 
                    
    
                    //in pratica creo una copia chiave valore il nome del file inserire nello storage
                    //e quello da "prendere" ovvero l'ultimo file modificato ? ??
    		ContentValues values = new ContentValues();
    		values.put(MediaStore.Images.Media.DATA, p_path);
    		values.put(MediaStore.Images.Media.DATE_TAKEN, newFile.lastModified());
                      
                    //qua mi sono perso, inserisco nello storage l'array chiave valore da un url esterno ? ?? 
    		
    		Uri mImageCaptureUri = this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
    
    		// poi notifico il cambiamento ? allo storage 
                    //ma non posso solo notificare di refreshare lo storage con questa linea ? forse il metodo è più performante però ??
    		this.getContentResolver().notifyChange(Uri.parse("file://" + p_path),null);

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy