CodenameOne — Импорт набора изображений в теме

#java #resources #codenameone #image-scaling #image-size

Вопрос:

Приложение My CodenameOne в основном предназначено для того, чтобы быть аналогом iOS существующего приложения для Android. Это для старых устройств, на самом деле, как можно скорее или в будущем приложение Swift заменит его для OS 14>.

Мне нужны несколько настраиваемых значков, и у меня есть код svg для этого.

Изначально мне пришлось использовать инструмент Flamingo, который преобразует svg-файлы в классы Java. Я использовал его как

 ScaleImageButton appButton=new ScaleImageButton(new AppIcon().scaled(doubleButtonSize,doubleButtonSize).toImage());
 

Это громоздко, но оно даже не работает на iOS.

Поэтому теперь я прибегнул к созданию изображений png для каждой иконки на каждом уровне dpi, как это также можно сделать на Android.

Я переименовал файлы, чтобы они соответствовали стандарту, который, по-моему, предложен в CodenameOne. Возможными названиями являются:

 verylow.png

low.png

medium.png

high.png

veryhigh.png

560.png

hd.png

2hd.png

4k.png
 

В конце концов, его нужно использовать как

 Image icon = theme.getImage("icon.png"); 
 

Похоже, что изображения могут быть импортированы в проект более чем одним способом.

Мне сказали включить их в тему.

Согласно руководству разработчика CN1, я должен установить размер для каждого.

Если я импортирую их целиком (выбрав папку или выбрав все изображения и нажав кнопку «Открыть»), в редакторе тем появится диалоговое окно со всеми неправильными размерами (но они напоминают определенный набор вариантов, хотя это очень маловероятно).

Они не всегда имеют одинаковые размеры, но и не имеют значения по умолчанию в соответствии с предоставленным набором изображений.

Я предоставляю изображения в виде 24 пикселей, 36 пикселей, 48 пикселей, 72 пикселей, 96 пикселей, 144 пикселей, 192 пикселей, 288 пикселей, 384 пикселей для значков обычного размера, а также предоставляю изображения двойного размера для значков двойного размера в моем приложении (значения не удваиваются, как ожидалось).

Я также должен проверить параметры «Квадратное изображение» и «Сохранить соотношение сторон» (мои изображения уже квадратные).

Тогда самое странное, что есть процент, я вижу, например, 20. Подпись гласит: «повлияет на все записи». Я понял, что масштабирование изображений-это то, чего разработчик просто не хочет, если только у разработчика нет неправильных размеров, но все равно пропорции между собой, я думаю, этого не может быть.

Однако мне не нужно никакого масштабирования, изображения такие, какие они есть. Я создал их специально.

Руководство разработчика для меня недостаточно понятно.

Поэтому я спрашиваю

правильно ли настраивать неправильный размер, чтобы он соответствовал правильным, и как насчет процента?

Ответ №1:

Этот конкретный пользовательский интерфейс к настоящему времени немного устарел и почти не использовался, даже когда он был добавлен. Большинство пользователей выбрали масштабирование рабочего стола для нескольких изображений.

Опция масштабирования предназначена для уменьшения масштаба изображения с высоким разрешением на рабочем столе. Вы не хотите/не нуждаетесь в этом.

Вам не нужно редактировать файл. Просто обязательно включите командный режим XML и убедитесь, что ваши изображения используют правильные имена файлов. Затем, как только вы сохраните изображения, они появятся в файле ресурсов.

Я предлагаю добавить несколько изображений, используя стандартный метод добавления в меню. Затем замените все сгенерированные изображения своими копиями и снова откройте файл, затем сохраните его снова (последнее сохранение важно, так как оно переопределит файл res).