Подтвердить что ты не робот

Как сделать свой ImageView фиксированным, независимо от размера растрового изображения

Поэтому я загружаю изображения из веб-службы, но размер изображений иногда меньше или больше, чем у других изображений, и визуализация выглядит глупо, когда я помещаю их в ListView в Android. Я хотел бы зафиксировать размер моего ImageView так, чтобы он отображал только часть изображения, если он больше предварительно установленного количества. Я перепробовал все, что мог придумать: установить setMaxWidth/setMaxHeight, установить тип масштаба centerCrop, использовать ClipableDrawable, обернуть мой BitmapDrawable, установить с помощью Drawable.setBounds(). Я попытался установить в XML и программно, но ни один не работал. Я очень удивлен, установив максимальную ширину/высоту, ничего не сделал. Ниже приведен XML-код, который я использую в ImageView для определения ImageView:

    <ImageView android:id="@+id/recipeImage"
           android:maxHeight="64px"
           android:maxWidth="64px"
           android:scaleType="centerCrop"
           android:layout_width="wrap_content"
           android:layout_height="fill_parent"
           android:layout_alignParentTop="true"
           android:layout_alignParentBottom="true"
           android:layout_marginRight="6dip"/>

Но ничего не сработало.

4b9b3361

Ответ 1

Просто удалите maxHeight и maxWidth и введите свои единицы в layout_width и layout_height соответственно. Но не используйте модуль px - используйте вместо него dp, потому что они не зависят от устройства.

Ответ 2

Это будет соответствовать изображению с заданной высотой и шириной, независимо от размера изображения.

<ImageView
        android:id="@+id/image5"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:src="@drawable/image_1"
        android:scaleType="fitXY"/>

Ответ 3

Get ImageVIews as facebook posts.    
Glide.with(context).load(link)
                    .placeholder(R.drawable.aboutlogo)
                    .fitCenter()
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .into(imageView);'

        <ImageView
                    android:id="@+id/img1"
                    android:src="@drawable/ic_menu_camera"
                    android:adjustViewBounds="true"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:scaleType="center"/>