Intereting Posts
Не удалось разрешить целевые «Google Inc.: API Google: 16» Adb: найти PID из оболочки adb Android KitKat 4.4 Hangouts не может обрабатывать намерение отправки SMS Использование Telegram для отправки сообщения Изменение местоположения SDK в Android Studio: пробелы в местоположении каталога Удаление строки заголовка приложения для Android Время форматирования на Android, при следующих настройках (24 часа в час против AM / PM и т. Д.) Как создавать всплывающие уведомления, такие как уведомление, используемое в whatsapp для Android? Остановка службы Google Play Музыка автоматически всплывает. После подключения HeadPhone Android: где найти опцию «Неизвестные источники» на многих устройствах? Android Studio показывает ошибку при попытке использовать Embedded JDK вместо пользовательской установки Android – Как декодировать и декомпилировать любой файл APK? Trigger.IO in-app платежи дублируют обратные вызовы тот же orderid с другой подписью Получение выделенного текста в WebView через контекстную панель действий Android, как использовать / показывать MediaController с SurfaceView и MediaPlayer для видео?

Как изменить размер изображения, которое я выбрал из галереи в 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); } } } 

    Вы можете использовать этот метод для получения измененного изображения. Таким образом, вы можете избежать 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; }