图像未按 XML ImageView 中的定义显示

Posted

技术标签:

【中文标题】图像未按 XML ImageView 中的定义显示【英文标题】:Image not displaying as defined in XML ImageView 【发布时间】:2012-12-12 03:48:56 【问题描述】:

我是安卓新手。我可以从手机中检索图像。但是,我没有得到 xml 文件中定义的所需高度和宽度。图像仍然显示为矩形而不是正方形(它只是我原始照片的按比例缩小。但是,我只需要图像的正方形裁剪(图像的一部分没有缩放)。

XML 文件(图像视图):

<ImageView 
    android:id="@+id/photo"
    android:layout_
    android:layout_ 
    android:scaleType="center"
    android:adjustViewBounds="false" 
    android:gravity="center"/>

代码:

public View getView(final int position, View convertView, ViewGroup parent) 
    ViewHolder holder;
    if (convertView == null) 
        convertView = l_Inflater.inflate(R.layout.item_view, null);
        holder = new ViewHolder();
        holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);
        convertView.setTag(holder);
     else 
        holder = (ViewHolder) convertView.getTag();
    
    Uri fileURI = Uri.parse(itemArrayList.get(position).getPhoto());
    holder.itemImage.setImageURI(fileURI);
    return convertView;

【问题讨论】:

见***.com/questions/13596500/… 您好,以上是我手机上存储的图片。我想检索它并以 100 的高度和宽度显示它。即使图像是 200X180,我也只想要 100X100,这是图像的裁剪。我认为这与 exif 数据无关。 查看***.com/search?q=android+crop+an+image 【参考方案1】:

您已将 ImageView layout_width 和 layout_height 设置为 dp 而不是像素。所以在 hdpi 设备上 100dp 实际上是 150px 和 200 在 xhdpi 上。这可能是您的问题的原因。您可以以 px 为单位设置宽度和高度,并将图像放在 drawable-nodpi 文件夹中(不执行缩放)。 您也可以使用createBitmap (Bitmap source, int x, int y, int width, int height) 方法来获取您想要的图像的一部分。

【讨论】:

以上是关于图像未按 XML ImageView 中的定义显示的主要内容,如果未能解决你的问题,请参考以下文章

如何检查当前图像资源附加到android xml中的ImageView?

在 Android 中,如何移动裁剪的图像? (高级ImageView定位)

为啥我的图像没有显示在 imageView 中?

为啥我裁剪的图像很小?

ImageView 中的图像显示非常模糊

Android ImageView 在 ListView 中呈现更小的位图图像