Я использую метод ниже, чтобы загружать изображения из галереи Android, но работает, но если я выбираю изображение, сделанное с помощью задней камеры (то есть с большим разрешением), оно не будет загружаться в представление изображения. Он будет загружать меньшие изображения с передней камеры в обязательном порядке.Как масштабировать растровое изображение перед загрузкой в изображение?
Я предполагаю, что изображение должно быть уменьшено до нужной загрузки в изображение.
Кто-нибудь знает, как масштабировать изображение программно?
Я прокомментировал строку кода createScaledBitmap
, так как я не уверен, как ее реализовать.
Это полный метод, который получает изображение из галереи:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
if(data != null){
ImageView imageView = (ImageView) findViewById(R.id.capturedDebriImageView);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
//imageView.setImageBitmap(Bitmap.createScaledBitmap(picturePath, 130, 110, false));
}
else if(data == null){
Toast.makeText(this, "Callout for image failed!",
Toast.LENGTH_LONG).show();
}
}
}
Запустите прокомментированную строку с кодом –
@RobertRowntree Я уже устал, но 'picturePath' - это строка, которая не применима для конструктора. Я получаю следующую ошибку: 'Метод createScaledBitmap (Bitmap, int, int, boolean) в типе Bitmap не применим для аргументов (String, int, int, boolean)' –