0

大きな画像をAndroidに表示するのに問題があります。このcustom-scrollable-image-view でこれを実行しようとしました。

クラスでフル ビューを使用し、7165*786 サイズの画像を使用しました。そして、それはわずか1.11MBの画像です。このコードをブルースタックで実行して画像を表示することはできますが、実際のデバイスにはロードできませんでした。

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 を削除したところ、webservice でエラーが発生しました。それは私の実際のデバイスにも画像を表示し始め、また、以下のように画像を画面に表示するための解決策を取得します。

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 に答える