У меня есть ImageView
, который отображает png, который имеет больший формат изображения, чем у устройства (по вертикали - это означает его дольше). Я хочу отображать это, сохраняя соотношение сторон, сопоставляя ширину родительского элемента и привязывая изображение к верхней части экрана.
Проблема с использованием CENTER_CROP
в качестве типа шкалы заключается в том, что она (понятная) центрирует масштабированное изображение, а не выравнивает верхний край до верхнего края f изображения.
Проблема с FIT_START
заключается в том, что изображение будет соответствовать высоте экрана и не будет заполнять ширину.
Я решил эту проблему, используя пользовательский ImageView и переопределяя onDraw(Canvas)
и обрабатывая это вручную с помощью холста; проблема с этим подходом заключается в том, что 1) я беспокоюсь, что может быть более простое решение, 2) Я получаю исключение VM mem при вызове super(AttributeSet)
в конструкторе при попытке установить src img 330kb, когда куча имеет 3 мб бесплатно (с размером кучи 6 мб) и не может решить, почему.
Любые идеи/предложения/решения приветствуются:)
Спасибо
p.s. Я думал, что решение может состоять в том, чтобы использовать тип матричной шкалы и делать это самостоятельно, но это похоже на то же или больше, чем мое текущее решение!