Il Forum è consultabile solo in modalità lettura. Per domande o consigli iscriviti al nostro GRUPPO FACEBOOK / COMMUNITY cliccando qui

Gridview: altezza celle adattabile allo schermo

Discussione in 'Development' iniziata da marcellino248, 21 Mag 2015.

  1. marcellino248

    marcellino248 Baby Droid

    Iscritto:
    4 Mar 2015
    Messaggi:
    18
    "Mi Piace":
    0
    Salve a tutti, un quesito semplice (se si conosce la risposta ).
    Io ho una gridview di immagini alla quale ho impostato nell'XML il numero di colonne.
    qui il codice XML:

    Codice:
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/grid_view_bambini14"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:numColumns="@integer/grid_columns" <!-- il valore di grid_colums è deciso in res/values a seconda se l'orientamento del dispositivo è landscape o portrait -->
            android:horizontalSpacing="10sp"
            android:verticalSpacing="10sp"
            android:gravity="center"
            android:stretchMode="columnWidth" >
    e questo è il codice java che popola le celle:

    Codice:
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {
                imageView = new ImageView(mContext);
                imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                imageView.setLayoutParams(new GridView.LayoutParams(GridView.AUTO_FIT , 260));
            } else {
                imageView = (ImageView) convertView;
            }
            imageView.setImageResource(mThumbIds[position]);
            return imageView;
        }
    Ora, il problema è che l'altezza delle celle. Le immagini sono sempre alte uguali, ma le celle che le contengono a seconda del dispositivo (presumo in base a risoluzione e densità) a volte vanno bene e altre diventano altissime.
    credo che il parametro sotto accusa sia in questa linea:

    Codice:
         imageView.setLayoutParams(new GridView.LayoutParams(GridView.AUTO_FIT , 260));
    ma ho fatto già diversi esperimenti e non viene mai bene. Anche mettere GridView.AUTO_FIT anche nell'altezza si risolve in una schifezza.
    C'è un modo in cui si può risolvere questo problema?

    Grazie!...
     
  2. boriskarloff

    boriskarloff Baby Droid

    Iscritto:
    14 Dic 2014
    Messaggi:
    6
    "Mi Piace":
    1
    Sì è quella riga.
    Il parametro 260 non va bene. Quel valore lo devi impostare in base all'altezza dello schermo sottraendo ancora qualcosa in base alla dimensione dello spazio tra le celle.

    Ciao