Установить изображение в качестве обоев после обрезки без увеличения
Я новичок в программировании Android, и я создаю приложение, содержащее функцию обрезки. Я пытаюсь установить изображение в качестве обоев после обрезки, изображение становится увеличенным. Вот мой код, который работает, кроме проблемы масштабирования:
if (checkPermissionforcrop()) {
try {
Uri imgUri = Uri.parse(url);
CropIntent = new Intent("com.android.camera.action.CROP");
CropIntent.setDataAndType(imgUri, "image/*");
CropIntent.putExtra("crop", "true");
CropIntent.putExtra("outputX", 180);
CropIntent.putExtra("outputY", 180);
CropIntent.putExtra("aspectX", 3);
CropIntent.putExtra("aspectY", 4);
CropIntent.putExtra("noFaceDetection", true);
CropIntent.putExtra("scale", true);
CropIntent.putExtra("return-data", true);
CropIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
CropIntent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.name());
startActivityForResult(CropIntent, 1);
} catch (ActivityNotFoundException e) {
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT).show();
}
} else
requestPermissionforcrop();
/**/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PIC_CROP)
if (data == null) {
} else {
String filePath = f.getPath();
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
try {
WallpaperManager.getInstance(getApplicationContext()).setBitmap(bitmap);
} catch (IOException e) {
Toast.makeText(this, "Sorry :/" + e, Toast.LENGTH_SHORT).show();
}
Toast.makeText(this, "Done!", Toast.LENGTH_SHORT).show();
}
if (requestCode == 0)
this.finish();
super.onActivityResult(requestCode, resultCode, data);
}