Java 7165X786大小的大图像可以';不能在真实设备(平板电脑)中显示
我无法在android中显示大图像。我试着用这个来完成这件事 我在课堂上使用了全视图,并使用了7165*786大小的图像。它只有1.11MB的图像。我能够在bluestack中运行这段代码并看到其中的图像,但无法在真实设备中加载Java 7165X786大小的大图像可以';不能在真实设备(平板电脑)中显示,java,android,imageview,large-files,Java,Android,Imageview,Large Files,我无法在android中显示大图像。我试着用这个来完成这件事 我在课堂上使用了全视图,并使用了7165*786大小的图像。它只有1.11MB的图像。我能够在bluestack中运行这段代码并看到其中的图像,但无法在真实设备中加载 bmLargeImage = BitmapFactory.decodeResource(getResources(), R.drawable.imagewithout); bmlotusImage1 = BitmapFactory.dec
bmLargeImage = BitmapFactory.decodeResource(getResources(),
R.drawable.imagewithout);
bmlotusImage1 = BitmapFactory.decodeResource(getResources(),
R.drawable.lotus);
我在onDraw方法中使用相同的画布,如下所示
canvas.drawBitmap(bmLargeImage, scrollRect, displayRect, paint);
canvas.drawBitmap(bmlotusImage1, 45 - newScrollRectX,
255 - newScrollRectY, paint);
private static Bitmap ShrinkBitmap(String backgroundimage, int width,
int height) {
// TODO Auto-generated method stub
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(backgroundimage,
bmpFactoryOptions);
int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight
/ (float) height);
int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth
/ (float) width);
if (heightRatio > 1 || widthRatio > 1) {
if (heightRatio > widthRatio) {
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
bmpFactoryOptions.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(backgroundimage, bmpFactoryOptions);
return bitmap;
}
我无法在我的真实设备上显示bmlargeImage,我可以在设备上看到lotus图像,但看不到大图像
我需要解码或缩放图像或其他任何东西才能在真实设备中显示吗?我得到了不在真实设备中显示图像的解决方案问题很简单 我刚刚删除了目标sdk,我在webservice中发现了错误。它开始向我的真实设备显示图像,我也得到了适合屏幕显示图像的解决方案,如下所示
canvas.drawBitmap(bmLargeImage, scrollRect, displayRect, paint);
canvas.drawBitmap(bmlotusImage1, 45 - newScrollRectX,
255 - newScrollRectY, paint);
private static Bitmap ShrinkBitmap(String backgroundimage, int width,
int height) {
// TODO Auto-generated method stub
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(backgroundimage,
bmpFactoryOptions);
int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight
/ (float) height);
int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth
/ (float) width);
if (heightRatio > 1 || widthRatio > 1) {
if (heightRatio > widthRatio) {
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
bmpFactoryOptions.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(backgroundimage, bmpFactoryOptions);
return bitmap;
}
在这个方法中,我将图像宽度和高度作为参数传递
bmLargeImage = ShrinkBitmap(backgroundimage, 7165, 786);