Autore Topic: Selezionare ed utlizzare un immagine della gallery  (Letto 4588 volte)

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Selezionare ed utlizzare un immagine della gallery
« il: 14 Maggio 2010, 18:22:59 CEST »
+1
Come da titolo, vorrei mostrarvi come selezionare un immagine dalla gallery ed utilizzarla della nostra applicazione.
In questo caso, utilizziamo l'immagine scelta come sorgente dati di una ImageView.

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ImageView
                android:id="@+id/image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </ImageView>
</LinearLayout>

Codice (Java): [Seleziona]
public class ImageChooser extends Activity {
    public static final int SELECT_IMAGE_CODE=123;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startActivityForResult(new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),SELECT_IMAGE_CODE);
    }    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
        if(requestCode==SELECT_IMAGE_CODE&&resultCode==Activity.RESULT_OK){
                ((ImageView)findViewById(R.id.image)).setImageURI(data.getData());
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Saluti,
Qlimax
« Ultima modifica: 04 Settembre 2010, 18:21:02 CEST da JD »

Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #1 il: 05 Giugno 2010, 18:40:13 CEST »
0
bello, molto utile, ma..esiste mica qualcosa di simile per i file multimediali quali audio e video? :D

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #2 il: 05 Giugno 2010, 19:41:17 CEST »
0
Credo sia sufficiente sostituire Audio o Video ad Images in android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI.
« Ultima modifica: 05 Giugno 2010, 19:51:25 CEST da JD »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #3 il: 05 Giugno 2010, 19:43:33 CEST »
0
si, già provato e funziona...ho solo una domanda..con la funzione  ((ImageView)findViewById(R.id.image)).setImageURI(data.getData())

avviamo il file selezionato con i classici player di default, se io volessi mettere il risultato della funzione in una variabile che poi utilizzerò?

in sostanza mi serve la seguenza "/sdcard/blabla/blabla/miofile.mp4" ovviamente del file selezionato..

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #4 il: 05 Giugno 2010, 19:49:33 CEST »
0
Credo sia sufficiente sostituire Audio o Video ad Images in android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI.
esatto, chiaramente poi gli Uri ritornati vanno usati diversamente a seconda del tipo di risorsa...

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #5 il: 05 Giugno 2010, 19:59:02 CEST »
0
in sostanza mi serve la seguenza "/sdcard/blabla/blabla/miofile.mp4" ovviamente del file selezionato..

Ecco a te:
Codice (Java): [Seleziona]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
        if(requestCode==SELECT_IMAGE_CODE&&resultCode==Activity.RESULT_OK){
                Uri contentUri = data.getData();

                String [] proj={MediaStore.Images.Media.DATA};
                Cursor cursor = managedQuery( contentUri,
                                proj,  // Which columns to return
                                null,  // WHERE clause; which rows to return (all rows)
                                null,  // WHERE clause selection arguments (none)
                                null); // Order-by clause (ascending by name)
                int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                        String filePath = cursor.getString(column_index);                      
        }
        super.onActivityResult(requestCode, resultCode, data);
}
« Ultima modifica: 05 Giugno 2010, 20:03:47 CEST da JD »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #6 il: 05 Giugno 2010, 20:01:47 CEST »
0
ahhahah, c credi che stavo giusto cercando di far andare quella funzione? :D

il problema è ke son niubbo e non sto riuscendo a risolvere 2 errori che mi da..ovvero errore nel MediaStore e ne Cursor

cannot by resolved
e
cannot by resolved a type

Edit: mancavano gli import, adesso non da errore, ma l'app mi crasha.. :S
« Ultima modifica: 05 Giugno 2010, 20:05:05 CEST da dersew »

Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #7 il: 05 Giugno 2010, 20:14:49 CEST »
0
ok, adesso non mi crasha più, ma credo che

startActivityForResult(new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Video.Media.INTERNAL_CONTENT_URI),SELECT_IMAGE_CODE);

questa faccia avviare un player di default, infatti senza di questa non compare (ovviamente) la scelta dei file, ma mettendola, una volta selezionato il file me lo apre con un player di default, se volessi solo metterla in variabile dopo la selezione? :S

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #8 il: 05 Giugno 2010, 23:26:56 CEST »
0
Codice (Java): [Seleziona]
Intent pickVideoIntent=new Intent(Intent.ACTION_PICK);
pickVideoIntent.setType("video/*");
startActivityForResult(pickVideoIntent, SELECT_VIDEO_CODE);

questo funziona, non specificando il provider però prende sia i video sulla memoria del tel che su sd.
ma almeno li fa scegliere dalla gallery di sistema :D
probabilmente è sempre possibile applicare un filtro sul provider ma non ho guardato...prova/trova

Saluti


Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #9 il: 06 Giugno 2010, 02:35:27 CEST »
0
provato, si funziona, ma ha lo stesso effetto dell'altro codice..t fa selezionare il file, ma poi te lo avvia con un programma che ha in default, nn t salva il dato in variabile ..in pratica sto facendo un player, e spero che riesco a far leggere avi flv e tutto il resto..anzi, se qualcuno si vuole aggregare al progetto è ben voluto :D

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #10 il: 06 Giugno 2010, 19:12:59 CEST »
0
provato, si funziona, ma ha lo stesso effetto dell'altro codice..t fa selezionare il file, ma poi te lo avvia con un programma che ha in default, nn t salva il dato in variabile ..in pratica sto facendo un player, e spero che riesco a far leggere avi flv e tutto il resto..anzi, se qualcuno si vuole aggregare al progetto è ben voluto :D
Ti posso assicurare che su N1 e devphone 1.6 funziona...
Posso solo riconfermarti il codice:
Codice (Java): [Seleziona]
Intent pickVideoIntent=new  Intent(Intent.ACTION_PICK);
pickVideoIntent.setType("video/*");
startActivityForResult(pickVideoIntent, SELECT_VIDEO_CODE);


Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #11 il: 06 Giugno 2010, 19:16:28 CEST »
0
si, ok, funziona..ma cosa fa con esattezza?? io cmq ho un magic cyanomod 5.0.7, in sostanza quasi uguale al fw del n1, quindi credo che c stiamo solo capendo male..

1) a me compare si la scelta, ma una volta scelto mi avvia la "scelta" dei player sul quale avviarlo...

2) so che nn è questo il topic giusto, ma dato che c siamo, sai mica indirizzarmi al "come fare" per far comparire nella lista tra i player da scegliere,  il mio player?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #12 il: 06 Giugno 2010, 20:04:57 CEST »
0
si, ok, funziona..ma cosa fa con esattezza?? io cmq ho un magic cyanomod 5.0.7, in sostanza quasi uguale al fw del n1, quindi credo che c stiamo solo capendo male..

1) a me compare si la scelta, ma una volta scelto mi avvia la "scelta" dei player sul quale avviarlo...

2) so che nn è questo il topic giusto, ma dato che c siamo, sai mica indirizzarmi al "come fare" per far comparire nella lista tra i player da scegliere,  il mio player?
apre una schermata dove è possibile scegliere un video, una volta scelto il video torna in onActivityResult, dove puoi estrarre l'uri del video tramite data.getData()


comunque questo 3d è relativo a selezionare ed utlizzare un immagine della gallery. per altri problemi/richieste cerca la sezione piu adatta.


Offline dersew

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic 32A
  • Sistema operativo:
    ubuntu 10.04
Re:Come selezionare ed utlizzare un immagine della gallery
« Risposta #13 il: 06 Giugno 2010, 20:06:11 CEST »
0
non capito perkè allora a me nn restituisce nulla ma mi apre il video con uno dei player, video o immagine che sia..

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Selezionare ed utlizzare un immagine della gallery
« Risposta #14 il: 19 Dicembre 2010, 16:45:41 CET »
0
Come da titolo, vorrei mostrarvi come selezionare un immagine dalla gallery ed utilizzarla della nostra applicazione.
In questo caso, utilizziamo l'immagine scelta come sorgente dati di una ImageView.

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ImageView
                android:id="@+id/image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </ImageView>
</LinearLayout>

Codice (Java): [Seleziona]
public class ImageChooser extends Activity {
    public static final int SELECT_IMAGE_CODE=123;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startActivityForResult(new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),SELECT_IMAGE_CODE);
    }    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
        if(requestCode==SELECT_IMAGE_CODE&&resultCode==Activity.RESULT_OK){
                ((ImageView)findViewById(R.id.image)).setImageURI(data.getData());
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Saluti,
Qlimax

Aggiungo che, nel caso servisse avere una Drawable/Bitmap dell'immagine, è possibile ottenerla facilmente così:
Codice (Java): [Seleziona]
                try {
                    Bitmap b = Media.getBitmap(getContentResolver(), data.getData());
                    Drawable d = (new BitmapDrawable(getResources(), b));
                }
                catch (Throwable t) {
                    Log.e(TAG, "Exception " + t.getMessage() );
                }
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !