Доступ до розміру екрану і щільності в Processing

У прикладі Запуск скетчу в емуляторі Android ви дізналися, що ОС Android сама встановлює розмір вікна скетчу У цьому прикладі ми подивимося, як отримати доступ до ширини, висоті, DPI і щільності екрана Існує безліч пристроїв Android з різними розмірами екрану і дозволом Ці величини дозволять вашому скетчу коректно працювати на всіх цих пристроях

Приступимо

У цьому прикладі я використовував шрифт Junction, це відкритий шрифт, створений The League of Moveable Type Вви можете завантажити його за адресою http:// wwwtheleagueofmoveabletypecom/ junction Перетягніть файл шрифту Junctionotf в текстовий редактор Processing, щоб використовувати його в скетчі

Як це робиться

Почнемо з імпорту Android класу DisplayMetrics, оголошення змінних типу String і однієї змінної для шрифту, який будемо використовувати для відображення цих змінних на екрані:

import androidutilDisplayMetrics

String density String dpi String w String h

PFont junction

У функції setup () ми отримаємо потрібні значення з класу DisplayMetrics і присвоїмо їх змінним типу String Також ми завантажимо шрифт Junction розміром в 32 пікселя:

void setup()

{

size( displayWidth, displayHeight ) smooth()

DisplayMetrics metrics = new DisplayMetrics() getWindowManager()getDefaultDisplay()getMetrics( metrics )

density = &quotDensity: &quot + metricsdensity dpi = &quotDPI: &quot + metricsdensityDpi

w = &quotWidth: &quot + width

h = &quotheight: &quot + height

junction = createFont( &quotJunctionotf&quot, 32 ) textFont( junction, 32 )

println( PFontlist() )

}

У функції draw () ми виведемо змінні String на екран:

void draw()

{

background( 255, 225, 23 )

fill( 0 ) textAlign( CENTER )

text( density, width/2, 300 ) text( dpi, width/2, 360 ) text( w, width/2, 420 )

text( h, width/2, 480 )

}

Скетч, запущений на смартфоні HTC desire виглядає так, як на цьому скріншоті Якщо у вас інший пристрій, величини будуть іншими

Як це працює

Клас DisplayMetrics це головний клас Android, який одержує інформацію про дисплеї вашого пристрою ініціалізувати цю інформацію можна, оголосивши обєкт DisplayMetrics таким чином:

DisplayMetrics metrics = new DisplayMetrics() getWindowManager()getDefaultDisplay()getMetrics( metrics )

Після оголошення обєкта ви можете отримати доступ до потрібних величинам за допомогою наступних кодових конструкцій і застосувати їх потім в скетчі

metricsdensity metricsdensityDpi

Огляд всіх доступних полів і методів класу DisplayMetrics ви зможете знайти на сторінці http://developerandroidcom/reference/android/util/ DisplayMetricshtml

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*