【问题标题】:Android - Display part of a large imageAndroid - 显示大图像的一部分
【发布时间】:2017-08-14 04:55:06
【问题描述】:

无论如何要显示大图像的一部分 - 图像是 16000*320 当我在 Android Studio 中使用 ImageView 进行尝试时,我通常可以得到它在 activity_main.xml 设计下的样子,直到我构建 .apk 然后图像消失并在我的平板电脑上运行它也是空白的。

【问题讨论】:

  • 使用BitmapRegionDecoder
  • 你能添加一些代码吗?就像您在其中添加图像的 xml?
  • 感谢您的建议 - 我的 xml 文件已加载,包括 scrollview/imageview

标签: android imageview


【解决方案1】:

在布局 xml 文件中添加一个 ImageView:

<ImageView 
    android:id="@+id/myImage"
    android:layout_width="100dp"
    android:layout_height="100dp"/>

在您的活动中:

ImageView mImageView = (ImageView) findViewById(R.id.myImage);

然后使用BitmapRegionDecoder:

// Get image width and height:
InputStream inputStream = getAssets().open("large_image.jpg");
BitmapFactory.Options tmpOptions = new BitmapFactory.Options();
tmpOptions.inJustDecodeBounds = true;
BitmapFactory.decodeStream(inputStream, null, tmpOptions);
int width = tmpOptions.outWidth;
int height = tmpOptions.outHeight;

// Crop image:
// Crop a rect with 200 pixel width and height from center of image
BitmapRegionDecoder bitmapRegionDecoder = BitmapRegionDecoder.newInstance(inputStream, false);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap bitmap = bitmapRegionDecoder.decodeRegion(new Rect(width / 2 - 100, height / 2 - 100, width / 2 + 100, height / 2 + 100), options);
mImageView.setImageBitmap(bitmap);

来自here的代码

【讨论】:

  • 谢谢你,我会试试这个我的xml中需要什么吗?
  • 您只需要一个ImageView 即可显示裁剪后的图像。最后一行示例代码将裁剪后的图像分配给mImageView
  • 感谢我遇到以下问题 - 我将 mImageView 添加为 ImageView 的 ID ibb.co/gXRO7F
  • 您必须在您的 xml 中定义一个 ImageView 并在您的活动中定义它。我会更新我的答案
  • 感谢您的所有帮助我仍然有几行突出显示为红色,如以下链接中的图片所示 i.imgur.com/i5OFokc.png
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多