У меня есть встроенная библиотека изображений обложек в моем приложении, которые имеют функцию для взятия и использования снимка, сделанного с помощью камеры. Мой разработчик сделал это так, как ожидалось, но теперь, когда я проверил, сделайте снимок с камеры, а не снимет изображение и установите его на странице обрезки, его размытие перед тем, как мы его установили. Мой разработчик не отвечает требованиям. Я попросил разработчик библиотеки, и они дали мне решение для интеграции коды, как показано нижеСнимок сделан с камеры
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);Uri outputFileUri = Uri.fromFile(new File(context.getExternalCacheDir().getPath(), "pickImageResult.jpeg"));intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
и мой разработчик интегрирует код, как показано ниже в моем приложении
@Override
public void onClick(DialogInterface dialog, int which) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent,REQ_PHOTO_CAMERA);
}
}
, а также метод, как показано ниже
public final int REQ_PHOTO_CAMERA=243;
public final int REQ_PHOTO_GALLERY=346;
public final int REQ_APP_GALLERY=427;
public final int ACTION_CHANGE_BACKGROUND=1;
public final int ACTION_CHANGE_AUTHOR=2;
private int mChangeAction;
public void onActivityResult(int req,int res,Intent data){
if(res==RESULT_OK){
if(req==REQ_PHOTO_CAMERA){
Bitmap cameraImg = (Bitmap) data.getExtras().get("data");
cropAndSaveImage(cameraImg);
//updateCustomImage(cameraImg);
}else if(req==REQ_PHOTO_GALLERY){
try {
Bitmap imgGallery = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
// updateCustomImage(imgGallery);
cropAndSaveImage(imgGallery);
} catch (IOException e) {
// e.printStackTrace();
}
}else if (req == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
Uri resultUri = result.getUri();
Log.e("ImageUrl",resultUri.getPath());
updateCustomImage(BitmapFactory.decodeFile(resultUri.getPath()));
}else if(req==REQ_APP_GALLERY){
String imgPath=data.getStringExtra("ImagePath");
try {
InputStream inputStream=getAssets().open(imgPath);
Bitmap image=BitmapFactory.decodeStream(inputStream);
cropAndSaveImage(image);
} catch (IOException e) {
}
}
}
}
public void cropAndSaveImage(Bitmap imgPicked){
ImageLoader.getInstance().saveTempImage(imgPicked);
CropImage.activity(ImageLoader.getInstance().getTempImageUri())
.setInitialCropWindowPaddingRatio(0)
.setFixAspectRatio(false)
.setAspectRatio(1,2)
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);
}
Дайте мне знать, что мне не хватает?
Примечание: мы использовали эту библиотеку: Link
Благодарности
Вы также должны проверить, происходит ли это на разных устройствах. Трудно сказать, просто ли это вызвано камерой низкого качества или каким-то непреднамеренным поведением кода. – Enzokie
Привет! Спасибо, сэр ! Я проверил на 4-5 устройства и получил проблемы во всех устройствах, разработчик библиотеки также дал решение для него, которое я написал в первом блоке кода, но я не знаю, как его можно связать в моем коде –
. Этот код создает blurry image 'Bitmap cameraImg = (Bitmap) data.getExtras(). get (" data ");', поскольку он используется только для эскизов. – Enzokie