如何根据Android上的裁剪能力过滤意图?

时间:2014-02-11 17:50:45

标签: android image android-intent intentfilter

我想允许用户选择照片并裁剪图像。这在大多数情况下都有效。我遇到的问题是App Chooser正在显示没有裁剪能力的应用程序。

enter image description here 例如,这是出现的App Chooser。但是只有“画廊”才能裁剪。

所以我需要一种方法来过滤其他三个应用程序。否则我的用户会感到困惑和生气。

以下是我目前使用的代码:

            final Intent intent = new Intent(Intent.ACTION_PICK, 
                android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        intent.setType("image/*");
        intent.putExtra("crop", "true");
        intent.putExtra("scale", true);
        intent.putExtra("outputX", 50);
        intent.putExtra("outputY", 68);
        intent.putExtra("aspectX", 50);
        intent.putExtra("aspectY", 68);
        intent.putExtra("return-data", true);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(Intent.createChooser(intent, getString(R.string.select_picture)), SELECT_IMAGE);
        } else {
            //Show error
        }

1 个答案:

答案 0 :(得分:3)

  

但是只有“画廊”才能裁剪。

仅在某些设备上。对于图库应用程序,没有要求AFAIK提供某种裁剪功能。

  

所以我需要一种方法来过滤其他三个应用

不,你需要意识到没有正式属于Android的裁剪能力。然后,您需要在应用程序内部实现裁剪。更详细地介绍了评论中提到的男爵in a blog post of mine