2017-08-13 32 views
0

是否有无论如何显示大图像的一部分 - 图像是16000 * 320 当我在Android Studio中使用ImageView尝试了这一点时,我通常可以看到它看起来像它的工作activity_main.xml设计,直到我生成.apk,然后图像消失并在我的平板电脑上运行它也是空白的。Android - 显示一个大图像的一部分

+0

使用'BitmapRegionDecoder' – pskink

+0

你可以添加一些代码吗?就像你添加图像的xml一样? – MHogge

+0

感谢您的建议 - 我的XML文件已加载包括scrollview/imageview –

回答

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

+0

谢谢我会尝试这个我需要什么在我的XML? –

+0

你只需要一个'ImageView'来显示裁剪后的图像。示例代码的最后一行将裁剪后的图像分配给'mImageView' –

+0

感谢您的下面的问题 - 添加mImageView作为ImageView的id http://ibb.co/gXRO7F –