У меня есть URI изображения, которое я пытаюсь загрузить в изображение.Загрузить изображение из URI в определенных размерах, сохраняя пропорции
Uri imageUri = /* URI goes here */
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
Imageview iv = (Imageview) findViewById (R.id.my_img_view);
iv.setImageBitmap(bitmap);
Изображение загружается в полном разрешении (до 21 мегапикселя, вызывая исключение из памяти). Мое приложение не нужно использовать изображение в полном разрешении, так что я хочу, чтобы изображение масштабируется вниз таким образом, что выполнены следующие условия:
Если высота изображения является больше ширины (т.е. портрет), то масштабируйте ширину до 1024 пикселей и масштабируйте высоту до соответствующего значения, чтобы поддерживать соотношение сторон.
Если ширина изображения больше высоты (то есть пейзаж), то масштабируйте высоту до 1024 пикселей и масштабируйте ширину до соответствующего значения, чтобы поддерживать соотношение сторон.
Если изображение имеет квадратную форму, масштабировать его к 1024x1024
есть ли способ, с помощью которого можно масштабировать растровое изображение перед нанесением его на ImageView (или даже лучше перед Media.getBitmap)?
@BuggyCoder - Если вы идете с этим ответом, вы можете захотеть взглянуть на этот вопрос: http://stackoverflow.com/questions/18250951/jni-bitmap-operations-for-helping-to-avoid-oom-when-using-large-images – HaemEternal
Умм, мне действительно нужно использовать стороннюю сторону библиотеки для основной задачи, например, изменение размера изображения? иногда мне интересно, почему основные функции в Android очень сложны: -/ – BuggyCoder
Я нашел здесь некоторое решение. http://stackoverflow.com/questions/4837715/how-to-resize-a-bitmap-in-android – BuggyCoder