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

-

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



dimy44


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

HTC One S

Евпатория

Возраст - 54

#281

Сделал тестовый апк, куда запаковал изображения, кто может, проверьте, пойдет или нет, хочу избавиться от дополнительных папок и все в апк поместить

Прикрепленный файл #1: 484_test.apk (541,13 Kb)

dimy44


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

HTC One S

Евпатория

Возраст - 54

#283

Спасибо. Вобщем, вот что я выяснил. Паковать все в один скрипт нет нужды. Но все придется кидать в папку raw - главный модуль script.py, остальные модули - .py или .pyc, а все остальное- разметки, изображения итд переименовать расширения на .txt, все имена только a-z_0-9 в нижнем регистре. Файлы настроек тоже можно туда, содержимое можно менять и сохранять. Как-то так.
-------------
добавлено в 09.41: Забыл добавить- проверял на аппарате без рута

Zaterehniy


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

Google Pixel 7a

Ставрополь

Возраст - 37

#284

Это хорошо. Путь указывать полностью или достаточно "raw/file.txt" ?

dimy44


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

HTC One S

Евпатория

Возраст - 54

#285

путь в скриптах? Там так:
path =s.path.dirname(__file__)# это папка где все файлы
sys.path.append(path) # теперь можно импортировать свои модули
пути к файлам для открытия и чтения, например 'file.txt':
os.path.join(path, 'file.txt')
ресурсы изображения, например файл 'img.png', переименованныйв 'img.txt'
в файле разметки (например 'layout.txt') пишешь android:src="file:///{pth}/img.txt", а в скрипте (для droid.fullShow(layout)) открываешь, читаешь и форматируешь layout = open(os.path.join(path, 'layout.txt')).read().format(pth=path)
-------------
добавлено в 12.05: os.path.dirname, а не s.path... Чето от китайца ввод текста тормозит
-------------
добавлено в 12.06: os.path.dirname, а не s.path... Чето от китайца ввод текста тормозит
-------------
добавлено в 12.24: И там кстати raw/... это в самом проекте путь, а после установки я проверял там что находится, показывает там три папки : 'cache', 'libs', 'files', все запакованные файлы оказываются в 'files'

Zaterehniy


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

Google Pixel 7a

Ставрополь

Возраст - 37

#286

Ну теперь можно смело паковать все ресурсы в апк. Да и так гораздо удобнее
-------------
добавлено в 14.04: Разделение разметки и pythona вообще считаю обязательным пунктом. Где можно посмотреть какие виджеты поддерживает sl4a ? Не все элементы доступны вроде. Да и параметры у поддерживаемых тоже не доступны.

dimy44


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

HTC One S

Евпатория

Возраст - 54

#287

Не все, надо самому проверять в случае сомнений). Можно здесь выкладывать разные плюшки оформления интерфейса. Щас попозже пример покажу)
-------------
добавлено в 15.34: Пример имитации нативной кнопки с картинкой, разноцветным текстом и кнопкой внутри

# -*- coding: utf-8 -*-
import android
import time

r = '''<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="#FFFFFF">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@android:drawable/btn_default"
android:id="@+id/buttons">
<ImageButton
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:src="@android:drawable/ic_menu_preferences"
android:id="@+id/button"
android:background="#00000000"/>
<LinearLayout
android:layout_height="match_parent"
android:layout_width="0dp"
android:orientation="vertical"
android:layout_weight="1">
<TextView
android:layout_height="0dp"
android:layout_weight="1"
android:clickable="true"
android:text="Заголовок"
android:layout_width="match_parent"
android:id="@+id/button_u"
android:gravity="center"
android:textColor="#f00"/>
<TextView
android:layout_height="0dp"
android:layout_weight="1"
android:clickable="true"
android:text="Содержимое 1"
android:layout_width="match_parent"
android:id="@+id/button_d"
android:gravity="center"
android:textColor="#000"/>
</LinearLayout>
<ImageButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/mode"
android:src="@android:drawable/ic_menu_share"
android:layout_gravity="top"/>
</LinearLayout>
</FrameLayout>
'''

droid = android.Android()

def foo():
droid.fullShow(r)
i = 0
while True:
signal = droid.eventWait().result
if signal['name'] == 'key' and signal['data']['key'] == '4':
break
elif signal['name'] == 'click':
id = signal['data']['id']
if id.startswith('button'):
droid.fullSetProperty('buttons', 'background', '#f94')
time.sleep(0.05)
droid.fullSetProperty('buttons', 'background', "@android:drawable/btn_default")
elif id == 'mode':
i ^= 1
droid.fullSetProperty('button_d', 'text', 'Содержимое {0}'.format(i+1))
droid.fullSetProperty('mode', 'src', '@android:drawable/{0}'.format(('ic_menu_share', 'ic_dialog_email')[i]))
foo()

Zaterehniy


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

Google Pixel 7a

Ставрополь

Возраст - 37

#288

Еще бы скрин прикрепить

Zaterehniy


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

Google Pixel 7a

Ставрополь

Возраст - 37

#290

А еще лучше все это дело оформлять в теге и прикреплять архив со скриптом.


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