URLImage.createMaskAdapter()/Image.createMask() не работает на iOS с масками среднего размераIOS

Программируем под IOS
Ответить
Anonymous
 URLImage.createMaskAdapter()/Image.createMask() не работает на iOS с масками среднего размера

Сообщение Anonymous »

Я наблюдаю недавнюю регрессию в Codename One на iOS.
Проблема возникает при создании адаптера маски с помощью URLImage.createMaskAdapter(). Один и тот же код корректно работает в симуляторе Codename One и на устройствах Android. Несколько дней назад он также работал на iOS.
Сначала я подумал, что это может быть связано с недавними изменениями UIScene, но после сужения круга я не думаю, что UIScene здесь задействован.
Этот код работает на iOS:

Код: Выделить всё

Image roundMask = Image.createImage(100, 100, 0xff000000);
Graphics g = roundMask.getGraphics();
g.setColor(0xffffff);
g.fillRoundRect(0, 0, 100, 100, 60, 60);

URLImage.ImageAdapter ada = URLImage.createMaskAdapter(roundMask);
Это также работает на iOS:

Код: Выделить всё

Image roundMask = Image.createImage(100, 150, 0xff000000);
Graphics g = roundMask.getGraphics();
g.setColor(0xffffff);
g.fillRoundRect(0, 0, 100, 150, 60, 60);

URLImage.ImageAdapter ada = URLImage.createMaskAdapter(roundMask);
Однако на реальном устройстве iOS это не работает:

Код: Выделить всё

Image roundMask = Image.createImage(410, 410, 0xff000000);
Graphics g = roundMask.getGraphics();
g.setColor(0xffffff);
g.fillRoundRect(0, 0, 410, 410, 60, 60);

URLImage.ImageAdapter ada = URLImage.createMaskAdapter(roundMask);
Это тоже не работает:

Код: Выделить всё

Image roundMask = Image.createImage(410, 614, 0xff000000);
Graphics g = roundMask.getGraphics();
g.setColor(0xffffff);
g.fillRoundRect(0, 0, 410, 614, 60, 60);

URLImage.ImageAdapter ada = URLImage.createMaskAdapter(roundMask);
Исключением является:

Код: Выделить всё

[EDT] 0:0:0,963 - Exception: java.lang.RuntimeException - null
java.lang.RuntimeException
at com_codename1_ui_Image.createMask:1090
at com_codename1_ui_URLImage.createMaskAdapter:231
Поэтому проблема, похоже, связана с Image.createMask()/URLImage.createMaskAdapter() в iOS, когда маска имеет умеренно большие размеры. Размер 410 x 410 не кажется особенно большим, и до недавнего времени это работало на iOS.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»