【问题标题】:Android: How to display an image in its original sizeAndroid:如何以原始大小显示图像
【发布时间】:2025-12-30 00:15:14
【问题描述】:

我从字节数组创建位图图像并将其显示在 ImageView 中。 ImageView的android:layout_widthandroid:layout_height设置为wrap_content,android:scaleType设置为center。但是图像仍然缩放到屏幕大小。

有没有办法以原始大小显示图像(就像直接使用 android:src 属性一样)?

代码:

从字节数组创建位图:

private Bitmap decodeBitmap(byte[] data) {
    return BitmapFactory.decodeByteArray(data, 0, data.length);
}

ImageView 的布局:

<ImageView
    android:id="@+id/logo"
    android:scaleType="centerInside"
    android:adjustViewBounds="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />     

将图像设置为 ImageView:

mView.setImageBitmap(mBitmap);

【问题讨论】:

  • 请添加您正在使用的代码..

标签: android image scale image-size


【解决方案1】:

请使用此代码 如果流来自资源

InputStream is = this.getResources().openRawResource(imageId1); 
Bitmap originalBitmap = BitmapFactory.decodeStream(is);
ImageView myimage.setImageBitmap(originalBitmap); 
myimage.setScaleType(ScaleType.MATRIX); 

【讨论】:

  • 图像仍然缩放以适应屏幕尺寸。我在这里使用 setImageBitmap() 将图像设置为 ImageView。
  • 图像是使用 decodeBitmap() 从字节数组创建的
  • 为什么你使用解码流这样使用 originalBitmap = BitmapFactory.decodeStream(is);
  • 好的,InputStream 是 = this.getResources().openRawResource(imageId1); originalBitmap = BitmapFactory.decodeStream(is);myimage.setImageBitmap(originalBitmap); myimage.setScaleType(ScaleType.MATRIX);
  • 图片来自哪里有关系吗?流不是来自资源。