Python » Страница 966

-

Программирование на Python



HeaTTheatR


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

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

Возраст - 42

#9652

Zaterehniy,

В общем, да, оно. Не пойму, что я не правильно нарисовал в макете?

Zaterehniy


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

Google Pixel 7a

Ставрополь

Возраст - 37

#9653

HeaTTheatR,
сойдет ? Или не так ?

Дополнительный скрин #1 (58,01 Kb)
-------------
добавлено в 20.11: Вот под окно информационное сделал

Дополнительный скрин #1 (70,01 Kb)
-------------
добавлено в 20.14: А вообще мы прошли от темы. Предлагаю подобное обсуждение вести тут -SL4A - Scripting Layer For Android - форум

HeaTTheatR


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

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

Возраст - 42

#9654

Zaterehniy,
Спасибо, Женя, но то, что ты предложил, я и сам сделал smile Меня интересует именно тот макет, который я предложил:
LinearLayout
LinearLayout
TableLayout
TableRow
Я не пойму, где там у меня ошибка.
-------------
добавлено в 22.05: Все, разобрался, спасибо.

dimy44


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

HTC One S

Евпатория

Возраст - 54

#9655

Уу, долго же я не заходил). Юра, вот пример, как я делал окошко внутри, с полупрозрачным фоном

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

r = '''<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:background="#6000">

<View
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/top"/>

<LinearLayout
android:layout_height="0dp"
android:id="@+id/layout_center_vertical"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_weight="1">

<View
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/left"/>

<LinearLayout
android:layout_height="match_parent"
android:layout_width="0dp"
android:orientation="vertical"
android:background="#fff"
android:layout_weight="10"
android:id="@+id/layout_main">

<TextView
android:layout_height="wrap_content"
android:text="Label"
android:textColor="#444"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"/>

<View
android:layout_height="0dp"
android:layout_weight="1"/>

<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:id="@+id/button_"
android:layout_marginTop="10dp"
android:background="@android:drawable/btn_default">

<ImageButton
android:layout_height="match_parent"
android:background="#0000"
android:layout_width="wrap_content"
android:src="@android:drawable/ic_lock_power_off"
android:id="@+id/button"/>

<TextView
android:layout_height="match_parent"
android:text="CLOSE"
android:clickable="true"
android:id="@+id/button"
android:textColor="#444"
android:layout_width="match_parent"
android:gravity="center_vertical|center_horizontal"/>

</LinearLayout>

</LinearLayout>

<View
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/right"/>

</LinearLayout>

<View
android:layout_height="0dp"
android:layout_weight="2"
android:id="@+id/bottom"/>

</LinearLayout>

'''

droid = android.Android()

def foo():
droid.fullShow(r)
while True:
signal = droid.eventWait().result
if signal['name'] == 'key' and signal['data']['key'] == '4':
break
elif signal['name'] == 'click':
id = signal['data']['id']
droid.fullSetProperty('{0}_'.format(id), 'background', '#f94')
time.sleep(0.05)
droid.fullSetProperty('{0}_'.format(id), 'background', "@android:drawable/btn_default")
for i in range(9, -1, -1):
droid.fullSetProperty('layout_main', 'scaleX', str(i/10.0))
break
foo()


как видишь, коренной layout полупрозрачный, ориентция вертикал. В него помещаем layout horizontal, сверху и снизу него- виджеты View (id = "top" и "bottom"), вем трём задаём веса layout_weight, которые распределяют расположение layout'а по-вертикали. В свою очередь в этот layout horizontal помещаем наш layout vertical, это само окошко, а по бокам, опять же, виджеты View (id = "left" и "right"), опять же веса троих определяют положение окошка по-горизонтали. А уже в этом окошке layout vertical мути что хочешь, для примера сделал заголовок и подобие кнопки

HeaTTheatR


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

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

Возраст - 42

#9656

dimy44,
Я выбрал вариант проще: просто устанавливаю background - файл png с полупрозрачным фоном. Так любой вложенный layout заметно тормозит отрисовку интерфейса winked

dimy44


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

HTC One S

Евпатория

Возраст - 54

#9657

Хм. Мы друг друга не поняли походу. Я думал ты спрашивал, как сделать окошко с полупрозрачным фоном вокруг. А просто полупрозрачный бэкграунд- ну файл это слишком. Укажи цвет фона в формате "#aarrggbb", где aa это альфа-канал от 00 (полная прозрачность) до ff (непрозрачный), например "#60000000" это полупрозрачный чёрный, или еще есть атрибут android:alpha="0.5", тоже устанавливает прозрачность от 0.0 (полностью прозрачен) до 1.0 (непрозрачен)

HeaTTheatR


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

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

Возраст - 42

#9658

dimy44,
Спасибо, не знал такой тонкости something-smells

HeaTTheatR


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

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

Возраст - 42

#9659

dimy44,
Дима, насчет твоего примера с окошком... Да, окошко отображается по центру и качественно растягивается при любом повороте экрана. Но сколько я не бился, добиться такого результата, да при условии, чтобы окно было еще и wrap_content, мне не удалось. Либо отцентрированое окно с качеством wrap_content (но тогда окно будет слишком мало при, например фразе "Авторизация"), либо такое же окно, которое держит равные отступы от границ экрана, но без качества wrap_content, и тогда, наоборот, например, слишком длинная фраза уже в него не влезет. Ты с таким сталкивался?

В прикрепленном файле пример. Запусти его с аргументом функции show("короткая фраза") и show("длинная фраза") и поймешь, о чем я.

Прикрепленный файл #1:

Внимание! У вас нет прав для просмотра скрытого текста.
(3,61 Kb)

dimy44


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

HTC One S

Евпатория

Возраст - 54

#9660

Я обычно делаю окошко с фиксированными пропорциями, ну скажем 2/5 высоты экрана, в нем сверху заголовок, снизу кнопки, а между ними все пространство занимает ScrollView с помещеннымв него TextView'ом
-------------
добавлено в 12.39: Щас гляну, не видел аттача
-------------
добавлено в 13.06: А вот так примерно если?

Прикрепленный файл #1: db2_pyprogressmini_edit.py (4,33 Kb)


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