Как мне сделать мой ImageView фиксированного размера независимо от размера растрового изображения - PullRequest
35 голосов
/ 23 сентября 2010

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

Но ничего не помогло.

Ответы [ 3 ]

45 голосов
/ 23 сентября 2010

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

2 голосов
/ 29 июня 2016

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

<ImageView
        android:id="@+id/image5"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:src="@drawable/image_1"
        android:scaleType="fitXY"/>
0 голосов
/ 05 апреля 2019
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"/>
...