В настоящее время я использую камеру по умолчанию для Android, чтобы обрезать изображение. Но это не работает должным образом в некоторых устройствах. В чистых устройствах андроида культура не вызывается, а возвращаемые данные равны нулю. Есть ли другой метод для достижения того же.Обрезка изображения в андроиде без необходимости использования
В настоящее время я использую следующий код, чтобы начать урожай,
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setType("image/*");
if(picUri != null) {
cropIntent.setDataAndType(picUri, "image/*");
}
String tmpName = imageDir.getAbsolutePath() + File.separator + "img.jpg";
File tmpFile = new File(tmpName);
if (tmpFile.exists()) {
tmpFile.delete();
}
Uri tmpUri = Uri.fromFile(tmpFile);
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 16);
cropIntent.putExtra("aspectY", 9);
cropIntent.putExtra("outputX", 320);
cropIntent.putExtra("outputY", 180);
cropIntent.putExtra("return-data", true);
cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, tmpUri);
startActivityForResult(cropIntent, PIC_CROP);
Я делаю это с намерениями, но работаю на каждом устройстве –
В нескольких устройствах приведенный выше код не будет работать особенно с чистым андроидом. Всегда безопасно избегать использования камеры для обрезки изображения. –