Processing:Библиотеки/Processing for Android/wallpaperOffset(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 14: Строка 14:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PImage img;
PImage img;
float ratio;
float ratio;

Текущая версия от 11:56, 20 мая 2023


Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



wallpaperHomeCount() и wallpaperOffset() [1]

Описание

Если у вашего устройства несколько домашних экранов, вам пригодятся функции wallpaperHomeCount() и wallpaperOffset(), которые позволяют настраивать графику в скетче в зависимости от текущего экрана. Функция wallpaperHomeCount() хранит количество домашних экранов (оно может меняться во время работы приложения «живых» обоев, т.к. пользователь может добавлять и удалять домашние экраны). Функция wallpaperOffset() хранит значение с плавающей точкой в диапазоне от «0» до «1», которое обозначает позицию экрана по горизонтали: «0» – это самый левый экран, а «1» – самый правый. В этом посте на stackoverflow.com более подробно объясняется, как это работает.

Пример

PImage img;
float ratio;

void setup() {
  fullScreen();
  img = loadImage("landscape.jpg");
  ratio = float(img.width)/float(img.height);
}

void draw() {
  background(0);
  float w = wallpaperHomeCount() * width;
  float h = w/ratio;
  float x = map(wallpaperOffset(), 0, 1, 0, -(wallpaperHomeCount()-1) * width);
  image(img, x, 0, w, h);
}

См.также

Внешние ссылки