Intereting Posts
Как получить временную метку входящего сообщения xmpp? Как обмениваться веб-приложениями с facebook, твиттером и т. Д. Настройка цвета каждого разделителя на каждый элемент в виде списка Тип Контейнер «Зависимости от Android» ссылается на существующую библиотеку android-support-v7-appcompat / bin / android-support-v7-appcompat.jar Android Повернуть изображение перед сохранением Расположение музыкальных файлов Android? EditText, вызывающий утечку памяти Wear App и с настраиваемым типом сборки с applicationIdSuffix InputType = имя_пользователя? YouTubePlayerView перезагружает видео при изменении ориентации экрана Android DataBinding, где можно получить контекст? Android не может использовать hdmi во вкладке объявления и должен быть уведомлен во всех (максимальных) устройствах, как только hdmi будет подключен Запрос многократного использования с использованием Retrofit 1.8.0 не работает Java.lang.verifyerror Как я могу исправить или даже выяснить причину? 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; }