CERCA
PER MODELLO
FullScreen Chatbox! :)

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

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

Gridview con ingrandimento immagini e selezione del nome del file.

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
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    26

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Gridview con ingrandimento immagini e selezione del nome del file.

    Salve a tutti,
    Vorrei farvi una domanda la cui risposta probabilmente è semplicissima, ma sono alla mia prima "vera" app e sto diventando matto.
    Io ho una gridView con immagini. Voglio che cliccando sull'immagine questa venga ingrandita a tutto schermo (oppure che venga visualizzata una versione della stessa immagine a maggior risoluzione, sempre a schermo intero).

    Stavo cercando di farlo con un Toast, facendogli sputare fuori una versione ad alta risoluzione dell'immagine, ma c'è qualcosa che mi sfugge: come faccio a fargli capire qual è l'immagine da mostrare?

    Mi spiego meglio.

    per creare la GridView ho seguito l'esempio preso qui:

    Grid View | Android Developers

    codice:
    public class ImageAdapter extends BaseAdapter {
        private Context mContext;
    
        public ImageAdapter(Context c) {
            mContext = c;
        }
    
        public int getCount() {
            return mThumbIds.length;
        }
    
        public Object getItem(int position) {
            return null;
        }
    
        public long getItemId(int position) {
            return 0;
        }
    
        // create a new ImageView for each item referenced by the Adapter
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {
                // if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);
            } else {
                imageView = (ImageView) convertView;
            }
    
            imageView.setImageResource(mThumbIds[position]);
            return imageView;
        }
    
        // references to our images
        private Integer[] mThumbIds = {
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7,
                R.drawable.sample_0, R.drawable.sample_1,
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7,
                R.drawable.sample_0, R.drawable.sample_1,
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7
        };
    }
    poi ho trovato questo codice per i Toast:

    codice:
    ImageView imageForToast = new ImageView(MainActivity.this);
    imageForToast.setImageResource(R.drawable.icon);
    
    Toast mioToast = new Toast(MainActivity.this);
    mioToast.setView(imageForToast);
    
    mioToast.show();
    Però in questo modo qualunque immagine della griglia clicco mi mostra sempre la stessa, quella che qui è chiamata icon.

    Come faccio a dirgli che per ogni immagine della griglia deve far uscire un'immagine differente?
    Visto che con il codice di questo esempio cliccando sull'immagine esce un toast con il numero della posizione, pensavo di inserire le immagini grandi in un array e fare in modo che il toast tirasse fuori l'immagine nella posizione dell'array corrispondente alla posizione cliccata, ma... dirlo è una cosa e farlo un'altra. Sarò scemo, non ci arrivo.

    Oppure c'è un modo per mostrare semplicemente l'immagine cliccata ingrandita?

    Calcoliamo anche un'altra funzione che deve avere questa griglia. Al secondo click sull'immagine grande dovrebbe memorizzare in una variabile il nome del file, perché dovrò riutilizzarlo più tardi. Alla luce di questo fatto, è possibile realizzare 'sta cosa senza dover creare una nuova activity per ogni immagine cliccata?

    Grazie e scusate l'ignoranza...

  2.  
  3. #2
    Androidiano


    Registrato dal
    May 2012
    Messaggi
    63

    Ringraziamenti
    0
    Ringraziato 11 volte in 10 Posts
    Predefinito

    Ti rispondo a volo senza darti una certezza di cosa dico.
    Quando selezioni un elemento della gridview puoi farti dare il "numero" dell'elemento selezionato.

    Se prima ti crei un vettore IMMAGINI che punta alle immagini, puoi usare questo "numero" come indice del vettore IMMAGINI.
    A questo punto la visualizzi a schermo intero.

    Non so se sono stato chiaro.

    Ciao

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