Intereting Posts
Применение stateListAnimator в элементе RecylerView вызовет мерцающий эффект при вызове notifyDataSetChanged Библиотека C # .dll в приложении для Android Как создать настройку активности для отображения половины экрана снизу? Предварительный просмотр пользовательских шрифтов в Android Studio Переход к следующему фрагменту нажатием кнопки Лучший способ добиться анимации жидкости в Android Ошибка: выполнение выполнено для задачи «: app: processDebugGoogleServices». > Исправьте конфликт версий GPS-калибровка для Android Multi Выберите <select> на мобильных устройствах Как найти все версии исходных кодов библиотек поддержки Android Извлечение обложек альбомов с помощью FFmpeg Измените настройки по умолчанию для Календаря Google для напоминаний Как изменить цвет фактического прокрутки в ScrollView android? Рисование заполненного прямоугольника с рамкой в ​​android «Почему Apache Harmony» или «Как использовать Java 8 на Android»

Как изменить размер изображения, которое я выбрал из галереи в Android?

Я строю андроид где. Внутри одного действия у меня есть кнопка изображения. Когда я нажимаю на нее, открывается галерея, и я могу выбрать изображение. Затем я установил это изображение в качестве нового изображения для кнопки изображения. Проблема заключается в том, что изображение кажется слишком большим в моей деятельности. Как я могу вставить его в мою кнопку изображения?

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestCode, resultCode, imageReturnedIntent); switch(requestCode) { case SELECT_PHOTO: if(resultCode == RESULT_OK){ Uri selectedImage = imageReturnedIntent.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 filePath = cursor.getString(columnIndex); cursor.close(); Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); mImageButton.setImageBitmap(yourSelectedImage); } } } 

Solutions Collecting From Web of "Как изменить размер изображения, которое я выбрал из галереи в Android?"

Вы можете использовать этот метод для получения измененного изображения. Таким образом, вы можете избежать OutOfMemoryError

 public static Bitmap decodeUri(Context c, Uri uri, final int requiredSize) throws FileNotFoundException { BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeStream(c.getContentResolver().openInputStream(uri), null, o); int width_tmp = o.outWidth , height_tmp = o.outHeight; int scale = 1; while(true) { if(width_tmp / 2 < requiredSize || height_tmp / 2 < requiredSize) break; width_tmp /= 2; height_tmp /= 2; scale *= 2; } BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; return BitmapFactory.decodeStream(c.getContentResolver().openInputStream(uri), null, o2); } 

См. Эту ссылку

Используйте: Bitmap.createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter)

Или используйте этот метод ::

 public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { int width = bm.getWidth(); int height = bm.getHeight(); float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(scaleWidth, scaleHeight); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); return resizedBitmap; }