0

我无法将大图像显示到android中。我试图通过这个custom-scrollable-image-view来完成这项工作。

我在课堂上使用了完整视图,并在其中使用了 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);

我无法在我的真实设备中显示 bmlargeImage 我可以在设备上看到莲花图像,但看不到大图像。

我是否必须解码或缩放图像或其他任何东西才能使其在真实设备中显示?

4

1 回答 1

0

我得到了不在真实设备中显示图像的解决方案,问题很简单。

我刚刚删除了目标 sdk ai 在 web 服务中出现错误。它也开始向我的真实设备显示图像,并且我得到了将图像显示到屏幕的解决方案,如下所示。

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);
于 2013-02-23T07:58:14.407 回答