1

これは、使用している画像をトリミングする次のコードです。

Display display = getWindowManager().getDefaultDisplay();
    mOutputX = display.getWidth();  
    mOutputY = display.getHeight();

    chooseImage.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            intent.putExtra("crop", "true");
            intent.putExtra("scale", true);
            intent.putExtra("outputX", mOutputX);
            intent.putExtra("outputY", mOutputY);
            intent.putExtra("aspectX", mOutputX);
            intent.putExtra("aspectY", mOutputY);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Utils.newImageFile(getApplicationContext()));
            intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
            intent.putExtra("setWallpaper", true);
            startActivityForResult(intent, REQ_CODE_PICK_IMAGE);                
            return false;
        }
    });

このコードは私の ICS デバイス (Nexus S) で完全に動作します。切り取り四角形は表示比率 (intent.putExtra("aspectX", mOutputX); intent.putExtra("aspectY", mOutputY);) を維持し、画像の出力形式は表示解像度に合わせてサイズ変更され、サイズが縮小されます。

しかし、android 2.3.3 デバイス (Wildfire S) では、トリミングの四角形は正方形であり、/高さの比率で表示を維持しません。一方、出力形式は正しいもの (320x480) です。

4

0 に答える 0