Java 7165X786大小的大图像可以';不能在真实设备(平板电脑)中显示

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

我无法在android中显示大图像。我试着用这个来完成这件事

我在课堂上使用了全视图,并使用了7165*786大小的图像。它只有1.11MB的图像。我能够在bluestack中运行这段代码并看到其中的图像,但无法在真实设备中加载

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);