В данном случае надо распарсить HTML, чтобы добыть адреса, хороший жава-парсер - JSOUP https://jsoup.org/ . Если у них есть апи - то оттуда, конечно, удобнее.
в IDEA подсветка? а что говорит подсказка? если проверка на null - так сделаю ее. Смотри IOException тут ничего не словит, сам апи колл происходит в другом месте...
мм, а уверены что не вылетит OOM с использованием не ресайзеных изображений в листвью?
а вообще ImageView().setImageBitmap(BitmapFactory.decodeStream(getAssets().open("your_image.png")));
Fotonick: Разное количество элементов(разное количество колонок) можно добиться, если ты менеджерсделаешь горизонтальным. Но он будет тогда скролиться горизонтально. Добиться, чтобы была переменное количество колонок при вертикальном лэйауте нельзя, нужен кастомный менеджер. Можно попробовать переписать GrideLAyoutManager onMeasure().
Но, если сроки, можно взять лэйаут отсюда : https://github.com/ApmeM/android-flowlayout