Łatwy sposób na zbudowanie interfejsu użytkownika Androida? [Zamknięte]

82

Czy istnieje narzędzie lub witryna internetowa, która mogłaby pomóc mi w utworzeniu interfejsu użytkownika dla aplikacji na Androida za pomocą metody „przeciągnij i upuść”?

Znalazłem tę witrynę, ale chcesz wiedzieć, czy jest do tego stabilniejsze narzędzie lub witryna?

hkhalifa
źródło
[Aktualizacja] Android Studio jest w fazie beta, ale wygląda obiecująco ... developer.android.com/sdk/installing/studio.html
Syed Qarib

Odpowiedzi:

46

Pozwólcie, że będę tym, który przyłoży trochę rzeczywistości do tego tematu. Nie ma dobrego narzędzia GUI do pracy z systemem Android. Jeśli pochodzisz z natywnego środowiska GUI aplikacji, na przykład Delphi, będziesz smutno rozczarowany wrażeniami użytkownika z edytora ADK i DroidDraw. Kilka razy próbowałem produktywnie pracować z DroidDraw i zawsze wracam do ręcznego przewijania XML.

ADK to dobry punkt wyjścia, ale nie jest łatwy w użyciu. Rozmieszczanie komponentów w układach to koszmar. DroidDraw wygląda, jakby był fantastyczny, ale nie mogę nawet za jego pomocą otworzyć istniejących, funkcjonalnych układów XML. W jakiś sposób traci połowę układu i nie może pobrać obrazów, które określiłem dla przycisków, tła itp.

Surowa rzeczywistość jest taka, że ​​przestrzeń programistów Androida pilnie potrzebuje elastycznego, łatwego w użyciu, solidnego narzędzia programistycznego GUI, podobnego do tych używanych do programowania .NET i Delphi.

Todd Grigsby
źródło
9
Zgadzam się. Praca z układami w systemie Android to absolutna wrzawa!
Kris B
4
Życzę im całkowitego porzucenia XML na korzyść CSS, jeśli chodzi o stylizację.
WKS
Cała platforma Android GUI musi działać szybko. Po prostu nie nadaje się do użytku.
G_V,
@G_V: Jeśli masz na myśli sterowanie wizualne, a nie IDE, to bym się różnił. Używam go od kilku lat i czuję się z nim całkiem dobrze.
Todd Grigsby,
28

Wtyczka Android Development Tools (ADT) dla Eclipse zawiera wizualny edytor plików układu aplikacji na Androida:

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

Josef Pfleger
źródło
4
Zwłaszcza ten, który pochodzi z Android SDK 1.5, jest znacznie lepszy niż DroidDraw.
Isaac Waller
8
Jeśli ktoś ma problem ze znalezieniem tego (wiem, że tak), po prostu otwórz plik main.xml w Eclipse. Jeśli to się nie powiedzie, kliknij go prawym przyciskiem myszy, Otwórz za pomocą> Edytor układu Androida. Jeśli to się nie powiedzie, ADT może nie zostać poprawnie zainstalowany.
MSpeed
12
Edytor wizualny w Eclipse jest do bani. To naprawdę utrudnia użytkownikowi prawidłowe ułożenie rzeczy.
Igor Ganapolsky
@IgorGanapolsky, co jest lepsze niż Eclipse?, Co sugerujesz?
Mahmoud Farahat
1
Osobiście nie uważam kreatora GUI ADT za łatwy ani intuicyjny w użyciu. Poważnie, ten kreator sprawia, że ​​Google wygląda źle.
shiouming
8

Najłatwiej jest z REBOL 3:

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

Oto 10 w pełni funkcjonalnych programów demonstracyjnych z graficznym interfejsem użytkownika. Działają one na systemach operacyjnych Android i stacjonarnych, używając dokładnie tego samego kodu:

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."]]
NickA
źródło
1
+1 Fajnie, nie chcę być sarkastyczny, ale wygląda na to, że potrzebuję innego tytułu magistra, aby zrozumieć ten kod. Wygląda prosto, ale dało mi to poczucie, że piszę to wszystko na zgromadzeniu?
Neon Warge
7

DroidDraw wydaje się być bardzo przydatny. Ma przejrzysty i łatwy interfejs i jest darmowy. Dostępne dla systemów Windows, Linux i Mac OS X. Polecam darowiznę.

Jeśli Ci się to nie podoba, zajrzyj na tę stronę . Istnieje kilka innych opcji i innych przydatnych narzędzi.

rlc
źródło
Nie robi nic dla tworzenia natywnego Androida z niestatycznym interfejsem użytkownika offline.
G_V,
Wygląda na to, że DroidDraw nie żyje. Link jest aktywny, ale pokazuje stronę internetową dostawcy hostingu domeny. Jest wolny ~
Neon Warge
6

Możesz także spróbować tego . Jeśli podoba Ci się koncepcja kontrolera widoku modelu i szybkie prototypowanie, to powiedziałbym, że spodoba Ci się pomysł, który za nim stoi;)

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

Wygenerowany interfejs użytkownika (kod poniżej):

wprowadź opis obrazu tutaj

Kompletny kod do utworzenia tego interfejsu użytkownika Androida :

wprowadź opis obrazu tutaj

Używam go w rzeczywistych aplikacjach, nie tylko do szybkiego prototypowania czy dialogów i jest dobrze sprawdzony przez lata. Koncepcja oparta jest na zasadzie kontroli widoku modelu i dla większości typowych scenariuszy są gotowe do użycia komponenty, które automatycznie wyglądają poprawnie na każdym urządzeniu. Nie mówię, że powinno się go używać w jakimkolwiek interfejsie użytkownika (np. Podglądy listy powinny być wykonywane ręcznie), ale w większości przypadków powinno to być całkiem przydatne;) Och i możesz go rozwidlić i ulepszyć go dalej, jeśli chcesz

Szymon
źródło
4

Droiddraw jest dobry. Używam go od dawna i nie napotkałem jeszcze żadnych problemów (chociaż czasami się zawiesza, ale to w porządku)

lostInTransit
źródło
3
"czasami się zawiesza, ale to jest ok" - to też moja mantra;)
demoncodemonkey
„czasami się zawiesza, ale to w porządku” - lol. to mnie naprawdę rozśmieszyło: D
mr5
1

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

Tworzenie aplikacji App Inventor rozpoczyna się w przeglądarce, w której projektujesz wygląd aplikacji. Następnie, podobnie jak łączenie elementów układanki, określasz zachowanie aplikacji. Przez cały czas, dzięki połączeniu na żywo między komputerem a telefonem, aplikacja pojawia się na telefonie.

Davek804
źródło
1

To stare pytanie, na które niestety nawet kilka lat później nie ma dobrego rozwiązania. Właśnie przeportowałem aplikację z iOS (Obj C) na Androida. Największym problemem nie był kod zaplecza (dla wielu / większości ludzi, jeśli możesz kodować w Obj C, możesz kodować w Javie), ale portowanie natywnych interfejsów. To, co powiedział Todd powyżej, układ interfejsu użytkownika jest nadal kompletnym problemem. Z mojego doświadczenia wynika, że ​​najszybszym narzędziem do opracowania niezawodnego interfejsu użytkownika, który obsługuje wiele formatów itp., Jest dobry stary HTML.

Nostradamus
źródło
0

Zauważyłem, że używanie http://pencil.evolus.vn/ razem z szablonami ołówkowymi z projektu http://code.google.com/p/android-ui-utils/ działa wyjątkowo dobrze. Bardzo prosty w użyciu, bardzo łatwy w tworzeniu skomplikowanych projektów

redsolo
źródło
Być może czegoś mi brakuje, ale o ile widzę, możesz umieszczać rzeczy tylko na Nexusie i nie jestem pewien, jak uzyskać kod xml dla main.xml
the_new_mr
0

Nie mówię, że to najlepszy sposób, ale dobrze jest mieć opcje. Necessitas to projekt, który przenosi Qt na Androida. Wciąż jest na wczesnym etapie i brakuje mu pełnych funkcji, ale dla tych, którzy znają Qt i nie chcą zawracać sobie głowy okropnym brakiem dobrych narzędzi dla interfejsu użytkownika Androida, rozsądnie byłoby przynajmniej rozważyć użycie tego.

tylerthemiler
źródło