无论位图的大小如何,我如何使ImageView成为固定大小

时间:2010-09-23 19:21:23

标签: java android bitmap imageview

所以我正在从Web服务加载图像,但是图像的大小有时比其他图像更小或更大,当我将它们放入android中的ListView时,可视化看起来很傻。我想修改我的ImageView的大小,以便它只显示图像的一部分,如果它大于预设量。我已经尝试了所有我能想到的设置setMaxWidth / setMaxHeight,将scale类型设置为centerCrop,使用ClipableDrawable包装我的BitmapDrawable,使用Drawable.setBounds()进行设置。我已尝试在XML中进行编程设置,但都没有工作。我很惊讶设置最大宽度/高度没有做任何事情。下面是我在布局文件中使用ImageView定义的XML:

    <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 个答案:

答案 0 :(得分:45)

只需删除maxHeight和maxWidth属性,然后在layout_width和layout_height中相应地输入单位。但是不要使用'px'单位 - 改为使用'dp',因为它们与设备无关。

答案 1 :(得分:2)

无论图像大小如何,这都将使图像适合指定的高度和宽度。

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

答案 2 :(得分:0)

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"/>