других? На эмуляторе ведь масштабируется.
Ну вот допустим контейнер 40 на 40 задал и иконка 40 на 40 пикселей, в итоге на одном девайсе это 160 на 160 пикселов и там иконка будет маленькой, а на другом это 20 на 20 пикселей че с иконкой будет?
Все правильно, ее размер должен отобразится в соответствии с ppi. И на эмуляторе одна единственная картинка 32х32 масштабируется под разные ppi правильно, пусть качество и падает. Непонятно, почему на реальном устройстве масштабируется не так как на эмуляторе.
Во-первых, вам правильно сказали, что надо картинку под все масштабы сделать Во-вторых, у ImageView на ведре есть несколько вариантов масштабировая ресурса, хз какой в Forms задаётся по умолчанию В третьих вы эти ppi в рантайме смотрите?
В реал тайме не знаю как узнать ppi, а вот плотность в свойстве объекта DisplayInfo посмотрел. На эмуляторе при PPI 240 Density = 1,5. На эмуляторе при PPI 320 Density = 2. А на девайсе при PPI 224 Density = 2, хотя должно быть <= 1.5.
Изображение иконки во все папки тоже добавил. То же самое изображение с тем же именем. Ничего не изменилось, на устройстве все равно неправильно масштабируется.
Вы её размеры хоть изменили?
С чего вдруг должно быть 1,5?
Мне не нужно чтобы при разных ppi картинка визуально на экране занимала одинаковое пространство. Меня устраивает пока что то ,что она масштабируется. Я очень хочу понять, почему она масштабируется неправильно? В обратную сторону? И можно ли это решить без костылей. Конечно, наверное я могу подобрать для mipmap-xhdpi(density = 2) размер изображения так, чтобы оно отображалось таким как мне надо. Но 224 ppi это не mipmap-xhdp., а mipmap-hdpi(density = 1.5).
cудя по вашим скринам, вам как раз нужно, чтобы были картинки для всех масштабов
Устройство возвращает неправильный Density, если эту проблему решить, то думаю все станет именно так как меня на данный момент устроит.
что такое неправиильный? какой должен быть правильный, и почему вы так решили?
Можно задать гриду фиксированную высоту и поместить в него текст с изображением, изображению выставить fillandexpand и aspectfit
Я не могу выставлять гриду фиксированную высоту, т.к. в одном из его столбцов может быть неизвестное количество текста. Вышеописанную проблему решил расчетом масштаба для изображения (или другого необходимого элемента). Из xdpi, в которой содержится реальный ppi рассчитываю реальную плотность пикселей устройства, потом делаю Scale = realDensity / density;
да. не совсем корректно написал. не высоту, а ширину колонки с изображением
у меня своя формула для расчета размера шрифта в зависимости от размера/разрешения, но суть та же )
Обсуждают сегодня