0

imageView にロードしようとしている画像の URI があります。

Uri imageUri = /* URI goes here */
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
Imageview iv = (Imageview) findViewById (R.id.my_img_view);
iv.setImageBitmap(bitmap); 

画像はフル解像度で読み込まれます (最大 21 メガピクセルではメモリ不足の例外が発生します)。私のアプリはフル解像度の画像を利用する必要がないため、次の条件が満たされるように画像を縮小する必要があります。

  1. 画像の高さが幅よりも大きい場合 (つまり縦長)、幅を 1024 ピクセルにスケーリングし、高さを適切な値にスケーリングしてアスペクト比を維持します。

  2. 画像の幅が高さよりも大きい場合 (つまり、横向き)、高さを 1024 ピクセルにスケーリングし、幅を適切な値にスケーリングしてアスペクト比を維持します。

  3. 画像が正方形の場合は、1024x1024 に拡大縮小します

ビットマップを imageView に適用する前に (または Media.getBitmap の前に) スケーリングする方法はありますか?

4

1 に答える 1

0

このライブラリを試してください: https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations

このライブラリは、スケーリング、回転、クロッピングなど、ほぼすべてのビットマップ操作をカバーしています。

于 2015-05-14T10:31:43.590 に答える