Найти - Пользователи
Полная версия: Определение ориентации экрана
Начало » Mobile Python » Определение ориентации экрана
1
ReinRaus
appuifw.app.screen по умолчанию равно automatic.
Таким образом например на nokia 5370 если выдвинуть клавитуру, то ориентация автоматически станет landscape, если задвинуть ее обратно, то соответственно portrait. Значение же так и останется automatic.
Как в программе определить реальную ориентацию экрана, которая зависит от положения кверти-клавиатуры.

необязательно даже от положения клавиатуры- ведь ориентация экрана может быть автоматически изменена акселорометром при повороте телефона на 90 градусов, если это включено в настройках.
R.Ll.S.h57
def orientation():
x,y=appuifw.app.layout(appuifw.EScreen)[0] # Узнаем размер экрана
if x<y:
return 'portrait'
else:
return 'landscape'
ReinRaus
Спасибо огромное.
переписал до такого- может кому пригодиться
class screen_orientation(object):
def __init__(this):
try:
temp=appuifw
except:
import appuifw
bkp_orientation=appuifw.app.orientation
appuifw.app.orientation='portrait'
this._x, this._y=appuifw.app.layout(appuifw.EScreen)[0]
appuifw.app.orientation=bkp_orientation

def get_orientation(this):
x, y=appuifw.app.layout(appuifw.EScreen)[0]
if x==this._x and y==this._y:
orientation='portrait'
else:
orientation='landscape'
return [orientation, [x, y]]
igor.kaist
    try:
temp=appuifw
except:
import appuifw
это то зачем?
ReinRaus
igor.kaist
    try:
temp=appuifw
except:
import appuifw
это то зачем?
Ну это если копируешь класс методом копипасте, то не выскакивают ошибки вроде модуль не импортирован. Считаю это хорошим тоном, чтобы класс не приходилось допиливать.
temp=appuifw
как мне кажется передача идентификатора это быстрая операция. Быстрее, чем
if "appuifw" in globals():
Такая операция
if not appuifw:
которая считается канонической проверкой существования переменной у меня на питоне 2.4 симбиан 9.х выдает ошибку, поэтому приходится писать именно так.
igor.kaist
ReinRaus
Считаю это хорошим тоном, чтобы класс не приходилось допиливать.
1. Плохим тоном считается импортировать внутри функций и классов.
2. Если кто то работает с UI, то считается что он импортирует appuifw для своих нужд сам.
3. В общем то достаточно узкоспециализированный класс, тем более, зачем принудительно выставлять портретную ориентацию, потом опять менять на ландшафтную. Представьте себе, что будет, если программа запущена изначально в ландшафтной.
4.
ReinRaus
как мне кажется передача идентификатора это быстрая операция. Быстрее, чем
Речь идет не о секундах, а о еденицах миллисекунд, зато код будет более ясным и чистым
5. Если уж пошла такая пьянка, то можете просто сделать import appuifw, повторно он не будет импортирован.
ReinRaus
igor.kaist
ReinRaus
Считаю это хорошим тоном, чтобы класс не приходилось допиливать.
1. Плохим тоном считается импортировать внутри функций и классов.
2. Если кто то работает с UI, то считается что он импортирует appuifw для своих нужд сам.
3. В общем то достаточно узкоспециализированный класс, тем более, зачем принудительно выставлять портретную ориентацию, потом опять менять на ландшафтную. Представьте себе, что будет, если программа запущена изначально в ландшафтной.
4.
ReinRaus
как мне кажется передача идентификатора это быстрая операция. Быстрее, чем
Речь идет не о секундах, а о еденицах миллисекунд, зато код будет более ясным и чистым
5. Если уж пошла такая пьянка, то можете просто сделать import appuifw, повторно он не будет импортирован.
Спасибо. Приму к сведению.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB