GridView автоматически подгонять изображения - PullRequest
32 голосов
/ 03 мая 2011

Я пытаюсь отобразить изображения в GridView и автоматически установить столбцы, поэтому мне пришлось вручную устанавливать количество столбцов, а это не то, что я хочу сделать, так как это повлияет на размер изображений. Экраны разных размеров. Я попытался установить его в auto_fit, но он отображает только 2 столбца в середине экрана. Это то, чего я пытаюсь достичь: (Каждый красный квадрат представляет изображение)

enter image description here

Затем, когда я перешел в альбомный режим, я хочу, чтобы столбцы автоматически подгонялись, чтобы все было ровно. Любая помощь будет высоко ценится, спасибо:)

Ответы [ 3 ]

70 голосов
/ 03 мая 2011

Поэкспериментируйте с атрибутами GridView, в частности android:numColumns="auto_fit" и android:stretchMode.У меня работает следующее:

<GridView 
    android:id="@+id/myGrid"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"    
    android:gravity="center"
/>
13 голосов
/ 12 мая 2012

Я не уверен, почему кто-то проголосовал за ответ выше меня (поэтому я проголосовал снова): мне пришлось решать аналогичную проблему программно (с помощью GridView детей ImageView).Некоторый код удален для ясности:

    int iDisplayWidth = getResources().getDisplayMetrics().widthPixels ;

    iImageWidth = iDisplayWidth
        / iNumberOfColumns ; 
    gridview.setColumnWidth( iImageWidth );
    gridview.setStretchMode( GridView.NO_STRETCH ) ;    
    /* wrap_content in the xml file is supposed to do this, but it didn't seem to work */

С наилучшими пожеланиями,

Piesia

5 голосов
/ 24 октября 2011

Лучшее решение состоит в том, чтобы измерять ширину программно, так что вы не получите жестко запрограммированную ширину столбца:

Android: Как GridView auto_fit находит количество столбцов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...