長い大きなアンドロイド搭載(4096よりも長い)ソリューションとアプローチ

ジョブは、最近の画像が出て読み込み、バグを発見しました。黒い画面、何も表示されませんが、絵は、問題をそのように対処していません。

最後に、私は、エラーを表示するログを見つけました

テクスチャにアップロードするには大きすぎるビットマップ(1445x6459、最大= 4096x4096)

ビットマップ長いことを意味し、図、及び4096より大きい。

最後に、問い合わせの後、我々は2つの解決策があることがわかりました。

:圧縮されたビットマップ4096の長さ

    // 使用マトリックスの幅と高さを指定
    公共 静的ビットマップResizeImageを(ビットマップビットマップ、int型の W、INT H){
         // アートワークビットマップ 
        ビットマップBitmapOrg = ビットマップ;
         // 元の幅と高さ
        のint幅= BitmapOrg.getWidth()。
         INT高さ= BitmapOrg.getHeight();
         // 新規の指定された幅と高さ
        のint newWidth = W;
         INT newHeight = H;
         // 計算スケール
        フロート ScaleWidth =((フロート)newWidth)/ 幅と、
         フロート= ScaleHeightの値((フロート)newHeight)/ 身長;
         // スケーリングするための行列 
        マトリックスマトリックス= 新たな新しいマトリックスが();
         // 行列がスケール
        matrix.postScale(ScaleWidth、ScaleHeightの値が);
         // 画像を回転する
         // matrix.postRotate (45);
         // 新しいビットマップの作成 
        ビットマップをresizedBitmap = Bitmap.createBitmap(BitmapOrg、0、0 、幅、
                高さ、マトリックス、真の);
         戻りresizedBitmapを; 
    }

方法2:画像が2つの部分に分かれては、二つのImageViewの上に表示されます

あなたが撮影したビットマップ画像を必要とするビットマップ

ビットマップtopBitmap = Bitmap.createBitmap(ビットマップ、0、0、bitmap.getWidth()、(INT)(bitmap.getHeight()/ 2.0f )); 
            ビットマップbottomBitmap = Bitmap.createBitmap(ビットマップ、0、(INT)(bitmap.getHeight()/ 2.0f )、bitmap.getWidth()、
                    bitmap.getHeight() - (INT)(bitmap.getHeight()/ 2.0f ) ); 
            mImageView.setImageBitmap(topBitmap)。
            mImageView2.setImageBitmap(bottomBitmap)。

 

おすすめ

転載: www.cnblogs.com/niupi/p/11507002.html