SL4A - Scripting Layer For Android » Страница 27

-

Программирование под Android



dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#261

HeaTTheatR,
ага, это если eventWait() передать параметр- время в ms, то через этот промежуток будет циклично сканировать и возвращать None, если ниче не нажато. Иногда использую, вот пример когда кнопка принажатии крутится

# -*- coding: utf-8 -*-

res = """<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff">
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:layout_gravity="center"
android:text="Нажми меня"/>
</LinearLayout>
"""

import sys
import android
droid = android.Android()
droid.fullShow(res)
angle = 0
while True:
signal = droid.eventWait(20).result
if angle:
droid.fullSetProperty('button', 'rotationX', str(angle))
if angle == 360:
angle = 0
else:
angle += 20
if signal is None:
continue
if signal['name'] == 'click' and signal['data']['id'] == 'button':
if not angle:
angle = 20
elif signal['name'] == 'key' and signal['data']['key'] == '4':
sys.exit()

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#262

is работает быстрее

a="""

for i in range(1000000):
if i == None:
print 1
"""
print timeit.repeat(a, repeat=3, number=3)

a="""

for i in range(1000000):
if i is None:
print 1
"""
print timeit.repeat(a, repeat=3, number=3)


[0.1390678882598877, 0.13702893257141113, 0.13919305801391602]
[0.09987401962280273, 0.10103416442871094, 0.10086607933044434]

HeaTTheatR


репутация: 94
на сайте с 2010 года
сообщений: 747

Украина, Луганск

Возраст - 42

#263

nur87,
Это не скорость smile Я предпочитаю читабельнось сотым секундам smile

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#264

курица по зернышке клюет. сотые набираются в секунды. а потом все говорят питон тормоз.
ну и + pep8

HeaTTheatR


репутация: 94
на сайте с 2010 года
сообщений: 747

Украина, Луганск

Возраст - 42

#265

nur87,
Увы, это не тот случай, когда "курица по зернышку"! Отнюдь не тот!

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#266

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

HeaTTheatR


репутация: 94
на сайте с 2010 года
сообщений: 747

Украина, Луганск

Возраст - 42

#267

nur87,
Это встроенные возможности. Это даже не конструкция, составленная мною. Поэтому, чтобы писать вместо 2+2 add (2, 2)... Нет уж увольте. Я предпочитаю читабельность каким-то сотым и тысячным секундам.

HeaTTheatR


репутация: 94
на сайте с 2010 года
сообщений: 747

Украина, Луганск

Возраст - 42

#268

У кого есть рабочий пример
метода fullSetList? Чего-то у меня не хочет работать... SL4A r6

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#269

Хз, вот набросал, все работает

# -*- coding: utf-8 -*-

res = """<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
"""

import android
droid = android.Android()

droid.fullShow(res)
lst = ['Item {0:d}'.format(i+1) for i in range(20)]
droid.fullSetList('list_view', lst)
while True:
signal = droid.eventWait().result
if signal['name'] == 'itemclick' and signal['data']['id'] == 'list_view':
index = signal['data']['position']
print(index)
if signal['name'] == 'key' and signal['data']['key'] == '4':
break



-------------
добавлено в 14.12: Только он со ScrollView несовместим.

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#270

Цитата: Zaterehniy
 Думаю где то косяк в проекте. Кроме этого у меня все запускается и работает. А тут лишь в строке увидомлений надпись и никакой реакции. Поищу ошибку


Жека, можешь скинуть шаблон, который запаковывал реально рабочие проекты? Я задолбался - уже скачал другой шаблон с гуглокода, один хрен программа висит в уведомлениях и все, даже если ниче не менять, только script.py свой подсунуть- один фиг


Яндекс.Метрика