Сохранение пропорции изображения в виджетах приложения GridView

Я работаю над приложением с несколькими виджетами приложений, а некоторые из них используют GridView для отображения своего контента. Содержимое – это куча изображений обложки фильма, и я хотел бы сохранить исходное соотношение сторон изображений.

Кроме того, я ищу способ объявить соотношение сторон для изображений. Важно, чтобы изображения по-прежнему соответствовали ширине GridView когда пользователь меняет размер виджета приложения.

Поскольку невозможно использовать подклассы ImageView при работе с RemoteView s, это не может быть и речи. В настоящее время я использую ScaleType.CENTER_CROP на ImageView а также определенную высоту и ширину, но, как вы можете себе представить, это не идеально.

Какие-либо предложения?

Вы пробовали этот метод на своем ImageView?

  imageView.setAdjustViewBounds(true); 

Я нашел это благодаря этой ссылке .

Попробуйте установить GridView columnWidth как ширину изображения, numColumns как «auto_fit» и stretchMode как «spacingWidth»:

 <GridView android:id="@+id/gridView" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="50dp" android:numColumns="auto_fit" android:stretchMode="spacingWidth" /> 

Создайте подкласс удаленного представления, где при настройке растрового изображения используйте что-то вроде:

https://stackoverflow.com/a/2999707/944070

Или переопределить onMeasure в этой ситуации:

https://stackoverflow.com/a/4688335/944070

ImageView немного отличается от TextView. ImageView имеет «src», который определяет изображение переднего плана в виджетах. Если вы установите фон в изображении, он появится за передним планом. Оба этих изображения управляются по-разному с помощью android:stretchMode и других параметров андроида.

Я предлагаю вам попробовать изменить все ваши android:src to android:background И наоборот, чтобы получить образец того, что, по вашему мнению, будет работать для вас. После того, как вы получите несколько изображений так, как хотите их увидеть, затем обработайте изображения с помощью GIMP, Photoshop, чтобы их размер был таким же, как тот, который вам нравится. Изображения сами по себе должны быть хорошими, чтобы эти параметры хорошо работали с ним. Размеры, плотность и XY изображения.

См. Метод RelativeLayout + ShapeDrawable, используемый для другого аспекта соотношения сторон Appwidget: как я могу заполнить ImageView в Appwidget, сохраняя соотношение сторон?

Он работает в пределах ограничений AppWidget и должен быть применим к этой проблеме.