我想允许用户选择照片并裁剪图像。这在大多数情况下都有效。我遇到的问题是App Chooser正在显示没有裁剪能力的应用程序。
例如,这是出现的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
}
答案 0 :(得分:3)
但是只有“画廊”才能裁剪。
仅在某些设备上。对于图库应用程序,没有要求AFAIK提供某种裁剪功能。
所以我需要一种方法来过滤其他三个应用
不,你需要意识到没有正式属于Android的裁剪能力。然后,您需要在应用程序内部实现裁剪。更详细地介绍了评论中提到的男爵in a blog post of mine。