裁剪图像保持宽高比

时间:2012-05-30 14:18:52

标签: android crop aspect-ratio

以下代码用于裁剪我正在使用的图像:

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)上完美运行; copping矩形保持显示比例(intent.putExtra(“aspectX”,mOutputX); intent.putExtra(“aspectY”,mOutputY);)并将图像的输出格式调整为显示分辨率以减小尺寸。 / p>

但是在adroid 2.3.3设备(Wildfire S)上,裁剪矩形是一个正方形,并没有保持显示的/高度比例。另一方面,输出格式是正确的(320x480)。

0 个答案:

没有答案