Ł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?


[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.


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


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."]]

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.


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


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)


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.


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.



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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.