Я задал этот вопрос на здесь, я пытался загрузить широкий и длинный изображения с Glide в GridView
, и хотел загружать эти изображения разного размера более равномерно, как это делает Пикассо, сохраняя при этом соотношение сторон в максимально возможной степени. Ответ, который я получил, заключался в том, что это давняя проблема с GridView
s и попытка просмотра изображения с соотношением сторон Джейка Уортона, которое я пробовал без какого-либо успеха. Другое предложение состояло в том, чтобы сделать RecyclerView
в шахматном порядке, отличный ответ, но много изменений
Причиной всего этого было то, что мои изображения были слишком большими для быстрой загрузки Picasso, и пользователи жаловались, что это было очень медленно, но Glide (который кажется намного быстрее) загружает изображения с таким соотношением сторон и портит однородность моей сетки. , вы можете видеть по ссылке: длинные изображения занимают столько же места, сколько 2 широких изображения. В любом случае, после множества проб и ошибок я теперь использую Glide следующим образом:
int width = getActivity().getWindowManager().getDefaultDisplay().getWidth();
int myWidth = width / 2;
Glide.with(getActivity())
.load(mThumbIds[position])
.placeholder(R.drawable.placeholder)
.override(myWidth, myWidth)
.centerCrop()
.into(imageView)
;
Я новичок в Android, но это, кажется, работает отлично. И мой вопрос теперь отличается от того, что getWidth
устарело (приложение предназначено для API 16+), что-то не так с этим (получение ширины экрана, разделяющей его, и передача его вызову изменения размера Glide)? Я думаю, что нужно подождать, чтобы измерить вид, но это все равно быстрее, чем у Пикассо. Кто-нибудь может предложить что-нибудь лучше?
.override()
, который будет размером результирующего растрового изображения. - person TWiStErRob   schedule 01.10.2015RecyclerView
иAspectImageView
(или более общий макет, например этот а>) поможет в долгосрочной перспективе. Запрос размера дисплея чрезвычайно подвержен ошибкам (поля, отступы, интервалы и т. д. не учитываются); пусть система компоновки Android сделает свою работу;) - person TWiStErRob   schedule 01.10.2015display.getSize(size);
- person karan   schedule 01.10.2015