Этот вопрос оказывается не вопросом, и я прошу прощения у любого, кто его найдет, в надежде, что принятый ответ будет тем, что они ищут, когда его не будет.
Чтобы было понятно, scaleType=centerInside
работает как положено. То есть, если у вас есть изображение меньше, чем само ImageView
, то это изображение не будет масштабировано до границ ImageView
, оно останется в центре и будет немасштабировано.
Но чтобы вышеперечисленное работало должным образом, отрисовка должна быть помещена в папку nodpi
. Я понимаю, что это не всегда приемлемо. Таким образом, когда этот объект рисования необходимо поместить в одну из папок плотности вместо папки nodpi
, атрибут scaleType
будет работать только в определенных ситуациях.
Когда это будет работать:
- Вы запускаете приложение на устройстве / эмуляторе с
Xdpi
плотностью и
в папке плотности Xdpi
есть отрисовка (здесь X
означает,
l
, m
, h
или даже xh
).
- Вы запускаете приложение устройства / эмулятор,
например, с плотностью
hdpi
, но в
hdpi
, и система выбирает альтернативный
Папка nodpi
(не всегда известно, какую папку она выберет
от).
Когда не будет работать:
- Вы используете приложение / эмулятор приложения, например, с
hdpi
плотности, но в папке hdpi
нет
Система выбирает альтернативный оттягиваемый из любой другой плотности
папок (не папка nodpi
), масштабируемый будет масштабироваться до
ImageView
bounds и атрибут scaleType
не подойдут
что-нибудь.
В заключение, нет «правильного» ответа на мой вопрос, это действительно зависит от того, чего вы пытаетесь достичь. Ответ мой вопрос, мне просто нужно сделать 2 вещи: а) установить ImageView
scaleType
на centerInside
и б) Дублировать все чертежи из папки mdpi
в hdpi
папка (как объяснено выше, scaleType=centerInside
заработает).
Конечно, дублирование рисованных объектов не является оптимальным, но я не могу найти другого решения, и пока что никто другой не может ... Так что, пока я отмечу это как принятое.
Каков был бы тогда оптимальный ответ / решение?
По моему мнению, если устройство / эмулятор работает в hdpi
, и в папке hdpi
нет соответствующего рисунка, его следует выбрать из папки mdpi
, не масштабируя его, что позволяет scaleType
атрибут, чтобы сделать это вещь. Или, может быть, вынудите систему перейти в папку nodpi
, если в соответствующей папке плотности не найден соответствующий чертеж, это тоже может помочь.
Так что, если кто-нибудь когда-нибудь сможет обойти эту проблему / исправить ее, это будет действительно правильный ответ. Если это когда-нибудь произойдет, я поменяю принятый статус.