Я хотел бы создать сетку из квадратных изображений, но я не могу заставить изображения отображаться так, как мне нужно.Я начал с учебника по GridView:
http://developer.android.com/resources/tutorials/views/hello-gridview.html
, который, казалось, был близок к тому, что я хочу.
Единственное отличие, которое я вижу, это то, что я хочу ровно 18 изображений, и все они должны быть квадратного размера.Я установил количество столбцов равным 3, а затем загрузил 18 изображений, которые должны быть в 6 строках.Я хочу, чтобы изображения полностью заполняли каждую строку и не оставляли нежелательных лишних пробелов.Я не знаю размер изображений, пока они не будут загружены в телефон.Надеюсь, для начала они будут почти квадратными, но мне нужно обрезать центр, чтобы сделать их идеально квадратными, а затем масштабировать их, чтобы полностью заполнить 3 столбца.Мне нужны изображения, чтобы сохранить их пропорции.
Я не могу найти настройки или код для этой работы.Изображения перекрываются, имеют пропуски, неправильно масштабируются или что-то не так.
Самое близкое, что я получил, это изменил учебник GridView следующим образом, когда мой эмулятор установлен на 480x800:
imageView.setLayoutParams(new GridView.LayoutParams(480/3, 480/3));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(0, 0, 0, 0);
imageView.setAdjustViewBounds(true);
====
< GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="3"
android:stretchMode="columnWidth"
android:gravity="fill|clip_horizontal|clip_vertical"
/ >
Это почти правильно.Для тестовых изображений с квадратами, которые я использую, не хватает пары пикселей, не квадратные изображения не обрезаются, а вместо этого помещаются внутрь с черным прямоугольником, чтобы сохранить соотношение, а жестко закодированные значения являются хрупкими и не будут работать на всех телефонах, ориентациях илимакеты.Мне кажется интересным, что документация CENTER_CROP, кажется, утверждает, что она будет делать то, что я хочу, расширяясь, чтобы соответствовать изображению, но вместо этого, похоже, CENTER_INSIDE.
Я чувствую близость, но так и не понимаю, чего хочу.Может быть, я должен использовать что-то, кроме GridView?Какие-либо предложения?
Пожалуйста, не выдумывай.
Спасибо.