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 メガピクセルではメモリ不足の例外が発生します)。私のアプリはフル解像度の画像を利用する必要がないため、次の条件が満たされるように画像を縮小する必要があります。
画像の高さが幅よりも大きい場合 (つまり縦長)、幅を 1024 ピクセルにスケーリングし、高さを適切な値にスケーリングしてアスペクト比を維持します。
画像の幅が高さよりも大きい場合 (つまり、横向き)、高さを 1024 ピクセルにスケーリングし、幅を適切な値にスケーリングしてアスペクト比を維持します。
画像が正方形の場合は、1024x1024 に拡大縮小します
ビットマップを imageView に適用する前に (または Media.getBitmap の前に) スケーリングする方法はありますか?