2014-02-08 3 views
0

Я сохраняю и показываю изображения, сделанные с помощью приложения камеры, в моих представлениях. эти изображения отображаются в изображениях разного размера в разных видах.масштабирование изображения до разных размеров изображения

например, на одной странице у меня есть экран размера экрана 1/6, в другом - миниатюрный дисплей, а в другом - полный экран. Как я должен обрабатывать масштабирование?

Сначала я принимал растровое изображение, сжимающее с помощью bp.compress (Bitmap.CompressFormat.JPEG, 100, байты); и установка в виде изображения. это было не очень удобно для полноэкранного отображения, которое соответствует только экрану миниатюр.

наряду с этим я уверен, отображением нескольких изображений из папки вытяжки в некоторых представлениях, опять же они выглядят очень разные в разных экранах (например, для эмулятора и Samsung Galaxy телефона)

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

ответ

2

Это зависит от того, какой желаемый результат вы ищете. Для небольших уменьшенных изображений вы можете попытаться применить обрезку центра, а для более крупных видов, которые вы ищете, вы можете захотеть, чтобы изображение было таким большим, как позволяет экран, сохраняя при этом пропорции.

Чтобы упростить жизнь, почему бы не использовать библиотеку Пикассо с площади? Он обрабатывает много того, что вы просите, и является бесплатной библиотекой в ​​форме JAR. Одним из основных преимуществ является простой синтаксис, и он принимает изображения из файловой системы и доступных папок.

Он включает в себя некоторые преобразования, и вы также можете создавать свои собственные, что дает некоторую добавленную универсальность, если Square не сможет обеспечить необходимые преобразования.

Наконец, он обрабатывает кеширование изображений и, насколько я помню, он сохраняет масштабированное кешированное изображение в памяти по сравнению с огромным изображением, которое займет больше.

Coding Пример

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1); 
Picasso.with(context).load(new File(...)).into(imageView2); 

и для миниатюр что-то подобное может быть использования

Picasso.with(context) 
    .load(url) 
    .resize(50, 50) 
    .centerCrop() 
    .into(imageView) 

http://square.github.io/picasso/

+0

спасибо, что я пытаюсь его – user3013499

Смежные вопросы