Android - 显示大图像的一部分

时间:2017-08-13 19:23:03

标签: android imageview

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

1 个答案:

答案 0 :(得分:0)

在布局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的代码