Deixar a imagem de recorte do usuário
Eu estou tendo dificuldade em descobrir como deixar o usuário cortar a imagem. Eu gostaria de dar variável bitmap com bitmap carregado para cortar a imagem antes de defini-lo como papel de parede. Mas eu não estou conseguindo fazer isso ... Aqui está o que eu tentei.
Primeira versão. = Funciona como esperado MAS a imagem retornada está em baixa resolução. Alterar a saída para um valor mais alto não ajuda. Como vi em alguns posts, não é recomendado usar a câmera, pois nem todos os dispositivos suportam isso.
Intent intent = new Intent("com.android.camera.action.CROP");
String path = Images.Media.insertImage(context.getContentResolver(), loaded,null, null);
Uri uri = Uri.parse(path);
intent.setData(uri);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 300);
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, 2);
Segundo. Carregue o seletor de imagens e corte depois. Como posso configurá-lo para carregar o crop diretamente na minha imagem? Assim como na versão 1
Intent photoPickerIntent = new Intent(MediaStore.ACTION_PICK);
photoPickerIntent.setData(uri);
photoPickerIntent.putExtra("crop", "true");
photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
startActivityForResult(photoPickerIntent, 2);
E resultado onActivity
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) { return; }
if(requestCode == 2) {
Bundle extras = data.getExtras();
if(extras != null ) {
Bitmap photo = extras.getParcelable("data");
loaded = photo;
}
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setBitmap(loaded);
} catch (IOException e) {}
}
}
Eu não sei se esses são os métodos corretos para fazer isso, mas espero que alguém possa me apontar na direção certa. Qual, por que e como usar.
Atualizar: Eu ainda estou esperando por alguém para mostrar como fazer isso corretamente, as respostas abaixo estão funcionando, mas retornando imagens em baixa resolução, então elas não são uma opção para usar