Простий спосіб побудови інтерфейсу Android? [зачинено]


82

Чи існує інструмент або веб-сайт, який міг би допомогти мені створити інтерфейс користувача для програми Android за допомогою перетягування?

Я знайшов цей сайт, але хочу знати, чи існує для цього більш стабільний інструмент чи веб-сайт?


[Оновлення] Android Studio знаходиться в бета-версії, але виглядає багатообіцяюче .. developer.android.com/sdk/installing/studio.html
Syed Qarib

Відповіді:


46

Дозвольте мені бути тим, хто вдарить трохи реальності на цю тему. Немає хорошого графічного інтерфейсу для роботи з Android. Якщо ви походите із середовища графічного інтерфейсу програми, як, скажімо, Delphi, ви, на жаль, будете розчаровані досвідом роботи з редактором ADK та DroidDraw. Я кілька разів намагався продуктивно працювати з DroidDraw, і я завжди повертаюся до прокатки XML вручну.

ADK є гарною відправною точкою, але користуватися ним непросто. Розміщення компонентів у макетах - це кошмар. DroidDraw здається фантастичним, але я навіть не можу відкрити існуючі, функціональні XML-макети за допомогою нього. Він якимось чином втрачає половину макета і не може втягнути зображення, які я вказав для кнопок, фонів тощо.

Сувора реальність полягає в тому, що місце для розробників Android гостро потребує гнучкого, простого у використанні, надійного інструменту розробки графічного інтерфейсу, подібного до тих, що використовуються для розробки .NET та Delphi.


9
Я згоден. Робота з макетами в Android - це абсолютний біль!
Kris B

4
Я хотів би, щоб вони відмовились від XML на користь CSS, коли справа стосується стилю.
WKS

Весь фреймворк графічного інтерфейсу Android повинен працювати швидко. Це просто непридатне для використання.
G_V

@G_V: Якщо ви маєте на увазі візуальні елементи керування, а не IDE, я б просив відрізнятись. Я використовую його вже кілька років, і мені це досить комфортно.
Тодд Грігсбі,

28

Плагін Android Development Tools (ADT) для Eclipse включає візуальний редактор для файлів макета додатків для Android:

http://developer.android.com/tools/help/adt.html


4
Особливо той, який поставляється з Android SDK 1.5, набагато кращий, ніж DroidDraw.
Ісаак Уоллер,

8
Якщо у когось виникають проблеми з пошуком цього (я знаю, що я це зробив), просто відкрийте файл main.xml у Eclipse. Якщо це не вдається, клацніть правою кнопкою миші, відкрийте за допомогою> Android Layout Editor. Якщо це не вдається, ваш ADT може бути встановлений неправильно.
MSpeed

12
Візуальний редактор в Eclipse відстій. Це справді заважає дозволяти користувачеві правильно викладати речі.
ІгорГанапольський

@IgorGanapolsky що краще, ніж Eclipse?, Що ти пропонуєш?
Махмуд Фарахат

1
Я особисто не вважаю GUI-конструктор ADT простим та інтуїтивно зрозумілим у використанні. Серйозно кажучи, цей конструктор робить Google поганим.
shiouming

8

Найпростіший спосіб - за допомогою REBOL 3:

http://rebolforum.com/index.cgi?f=printtopic&permalink=Nick25-Aug-2013/10:08:38-7:00&archiveflag=new

Ось 10 повністю функціональних демо-програм із графічним інтерфейсом. Вони працюють в ОС Android та настільних ОС, використовуючи точно такий самий код:

REBOL []
load-gui
view [text "Hello World!"]


REBOL [title: "Tiny Note Editor"]
do %r3-gui.r3  ; download this file manually or just use load-gui as above
view [
    a1: area
    button "Save" on-action [write %notes.txt get-face a1]
    button "Load" on-action [set-face a1 to-string read %notes.txt]
]


REBOL [title: "Data Entry to CSV File"]
do %r3-gui.r3
view [
    text "First Name:"
    f1: field
    text "Last Name:"
    f2: field
    button "Submit" on-action [
        write/append %cntcts.txt rejoin [
            mold get-face f1 " " mold get-face f2 newline
        ]
        request "" "Saved"
    ]
    a1: area
    button "Load" on-action [set-face a1 to-string read %cntcts.txt]
]


REBOL [title: "Text File Reader (How to use a text list file selector)"]
do %r3-gui.r3
view [
    a1: area
    button "Load" on-action [
        files: read %./
        view/modal [
            text "File Name:"
            t2: text-list files on-action [
                set-face a1 to-string read(to-file pick files get-face t2)
                unview
            ]
        ]
    ]
]


REBOL [title: "List-View (Grid) Example"]
do %r3-gui.r3
view [
    text-table ["1" 200 "2" 100 "3"][
        ["asdf" "a" "4"]
        ["sdfg" "b" "3"]
        ["dfgh" "c" "2"]
        ["fghj" "d" "1"]
    ] 
]


REBOL [title: "Calculator"]
do %r3-gui.r3
stylize [
    btn: button [
        facets: [init-size: 50x50]
        actors: [on-action:[set-face f join get-face f get-face face]]
    ]
]
view [
    hgroup [
        f: field return
        btn "1"  btn "2"  btn "3"  btn " + "  return
        btn "4"  btn "5"  btn "6"  btn " - "  return
        btn "7"  btn "8"  btn "9"  btn " * "  return
        btn "0"  btn "."  btn " / "   btn "=" on-action [
            attempt [set-face f form do get-face f]
        ]
    ]
]


REBOL [title: "Sliding Tile Puzzle"]
do %r3-gui.r3
stylize [
    p: button [
        facets: [init-size: 60x60  max-size: 60x60]
        actors: [
            on-action: [
                t: face/gob/offset
                face/gob/offset: x/gob/offset
                x/gob/offset: t
            ]
        ]
    ]
]
view/options [
    hgroup [ 
        p "8"   p "7"   p "6"   return
        p "5"   p "4"   p "3"   return
        p "2"   p "1"   x: box 60x60 white
    ]
] [bg-color: white]


REBOL [title: "Math Test"]
do %r3-gui.r3
random/seed now
x: does [rejoin [random 10 " + " random 20]]
view [
    f1: field (x)
    text "Answer:"
    f2: field on-action [
        either (get-face f2) = (form do get-face f1) [
            request "Yes!" "Yes!"][request "No!" "No!"
        ]
        set-face f1 x
        set-face f2 ""
        focus f2
    ]
]


REBOL [title: "Minimal Cash Register"]
do %r3-gui.r3
stylize [fld: field [init-size: 80]]   
view [
    hgroup [
        text "Cashier:"   cashier: fld 
        text "Item:"      item: fld 
        text "Price:"     price: fld on-action [
            if error? try [to-money get-face price] [
                request "Error" "Price error" 
                return none
            ]
            set-face a rejoin [
                get-face a mold get-face item tab get-face price newline
            ]
            set-face item copy "" set-face price copy ""
            sum: 0
            foreach [item price] load get-face a [
                sum: sum + to-money price
            ]
            set-face subtotal form sum
            set-face tax form sum * .06
            set-face total form sum * 1.06 
            focus item
        ]
        return
        a: area 600x300
        return
        text "Subtotal:"   subtotal: fld 
        text "Tax:"        tax: fld 
        text "Total:"      total: fld
        button "Save" on-action [
            items: replace/all (mold load get-face a) newline " "
            write/append %sales.txt rejoin [
                items newline get-face cashier newline now/date newline
            ]
            set-face item copy "" set-face price copy "" 
            set-face a copy ""    set-face subtotal copy ""
            set-face tax copy "" set-face total copy ""
        ]
    ]
]


REBOL [title: "Requestors"]
do %r3-gui.r3
x: request/ask "Question" "Do you like this?."
either x = false [print "No!"] [print "Yes!"]
x: request/custom "" "Do you like this?" ["Yay" "Boo"]
either x = false [print "Boo!"] [print "Yay!"]
view [button "Click me" on-action[request "Ok" "You clicked the button."]]

1
+1 Приємно, я не хочу бути саркастичним, але схоже, мені потрібен ще один ступінь магістра, щоб зрозуміти цей код. Виглядає просто, але це дало мені відчуття, що я все це пишу на збірці?
Neon Warge

7

DroidDraw видається дуже корисним. Він має чистий і простий інтерфейс, і це безкоштовна програма. Доступно для Windows, Linux та Mac OS X. Раджу пожертвувати.

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


Нічого не робить для власної розробки Android за допомогою офлайн-нестатичних графічних елементів.
G_V

Здається, DroidDraw мертвий. Посилання активне, але воно відображає веб-сторінку хосту домену. Його вакантно ~
Neon Warge

6

Ви також можете спробувати це . Якщо вам подобається концепція контролера перегляду моделі та швидке прототипування, тоді я б сказав, що ідея, що стоїть за ним, вам сподобається;)

SimpleUi (https://github.com/bitstars/SimpleUi)

Створений інтерфейс користувача (код нижче):

введіть тут опис зображення

Повний код для створення цього інтерфейсу Android :

введіть тут опис зображення

Я використовую його в реальних додатках, не тільки для швидкого створення прототипів або діалогів, і його добре перевірено роками. Концепція базується на принципі керування переглядом моделі, і для найбільш поширених сценаріїв є готові до використання компоненти, які автоматично виглядають правильно на будь-якому пристрої. Я не кажу, що його слід використовувати для будь-якого інтерфейсу користувача (наприклад, перегляди списків слід робити вручну), але для більшості випадків використання це має бути дуже зручно;) О, сміливо розкладайте його та вдосконалюйте, якщо хочете


4

Droiddraw - це добре. Я використовую його з давніх пір і ще не стикався з проблемами (хоча іноді він аварійно завершує роботу, але це нормально)


3
"іноді падає, але це нормально" - це теж моя мантра;)
demoncodemonkey

"це іноді падає, але це нормально" - ха-ха. це
насмішило



1

http://www.appinventor.mit.edu/

Створення програми App Inventor починається у вашому браузері, де ви розробляєте, як виглядатиме програма. Потім, подібно до складання частин головоломки, ви встановлюєте поведінку свого додатка. Протягом усього часу, через активний зв’язок між комп’ютером та телефоном, на вашому телефоні з’являється ваша програма.


1

Це давнє питання, яке, на жаль, навіть кілька років по тому не має хорошого рішення. Я щойно переніс додаток з iOS (Obj C) на Android. Найбільшою проблемою був не задній код (для багатьох / більшості людей, якщо ви можете кодувати в Obj C, ви можете кодувати на Java), а перенесення власних інтерфейсів. Те, що Тодд сказав вище, розмітка інтерфейсу все ще є цілком болем. На моєму досвіді, найшвидший процес розробки надійного інтерфейсу, який підтримує декілька форматів тощо, - це хороший HTML-код.


0

Я виявив, що використання http://pencil.evolus.vn/ разом із трафаретами-олівцями з проекту http://code.google.com/p/android-ui-utils/ працює надзвичайно добре. Дуже простий у використанні, дуже простий у знущанні над складними конструкціями


Можливо, я щось пропускаю, але, наскільки я бачу, ви можете розміщувати речі лише на Nexus, і я не впевнений, як отримати xml-код для main.xml
the_new_mr

0

Не кажучи, що це найкращий шлях, але добре мати варіанти. Necessitas - це проект, який переносить Qt на Android. Він все ще перебуває на початковій стадії і не має повноцінних функцій, але для тих, хто знає Qt і не хоче турбуватися через жахливу відсутність хороших інструментів для інтерфейсу Android, було б розумно хоча б подумати про використання цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.