Einfache Möglichkeit, Android-Benutzeroberfläche zu erstellen? [geschlossen]

81

Gibt es ein Tool oder eine Website, mit denen ich eine Benutzeroberfläche für eine Android-Anwendung per Drag & Drop erstellen kann?

Ich habe diese Website gefunden , möchte aber wissen, ob es dafür ein stabileres Tool oder eine stabilere Website gibt.

hkhalifa
quelle
[Update] Android Studio ist in der Beta, sieht aber vielversprechend aus. Developer.android.com/sdk/installing/studio.html
Syed Qarib

Antworten:

46

Gestatten Sie mir, derjenige zu sein, der diesem Thema ein wenig Realität verleiht. Es gibt kein gutes GUI-Tool für die Arbeit mit Android. Wenn Sie aus einer nativen Anwendungs-GUI-Umgebung wie beispielsweise Delphi stammen, werden Sie von der Benutzererfahrung mit dem ADK-Editor und DroidDraw leider enttäuscht sein. Ich habe mehrmals versucht, produktiv mit DroidDraw zu arbeiten, und ich gehe immer wieder darauf zurück, das XML von Hand zu rollen.

Das ADK ist ein guter Ausgangspunkt, aber nicht einfach zu bedienen. Das Positionieren von Komponenten in Layouts ist ein Albtraum. DroidDraw sieht fantastisch aus, aber ich kann damit nicht einmal vorhandene, funktionale XML-Layouts öffnen. Es verliert irgendwie die Hälfte des Layouts und kann die Bilder, die ich für Schaltflächen, Hintergründe usw. angegeben habe, nicht einlesen.

Die schlimme Realität ist, dass der Android-Entwicklerbereich dringend ein flexibles, benutzerfreundliches und robustes GUI-Entwicklungstool benötigt, das dem für die .NET- und Delphi-Entwicklung verwendeten ähnelt.

Todd Grigsby
quelle
9
Genau. Das Arbeiten mit Layouts in Android ist ein absoluter Schmerz!
Kris B
4
Ich wünschte, sie würden XML beim Styling ganz zugunsten von CSS fallen lassen.
WKS
Das gesamte Android-GUI-Framework muss schnell gehen. Es ist einfach nicht verwendbar.
G_V
@G_V: Wenn Sie sich eher auf die visuellen Steuerelemente als auf die IDE beziehen, würde ich mich unterscheiden. Ich benutze es jetzt seit ein paar Jahren und bin ziemlich zufrieden damit.
Todd Grigsby
28

Das ADT-Plugin (Android Development Tools) für Eclipse enthält einen visuellen Editor für Layoutdateien für Android-Anwendungen:

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

Josef Pfleger
quelle
4
Besonders das mit Android SDK 1.5 gelieferte ist viel besser als DroidDraw.
Isaac Waller
8
Wenn jemand Probleme hat, dies zu finden (ich weiß, dass ich es getan habe), öffnen Sie einfach Ihre main.xml in Eclipse. Wenn dies fehlschlägt, klicken Sie mit der rechten Maustaste darauf, Öffnen mit> Android Layout Editor. Wenn dies fehlschlägt, ist Ihr ADT möglicherweise nicht richtig installiert.
MSpeed
12
Der visuelle Editor in Eclipse ist scheiße. Es ist wirklich hemmend, dem Benutzer zu erlauben, die Dinge richtig zu gestalten.
IgorGanapolsky
@IgorGanapolsky was ist besser als Eclipse?, Was schlägst du vor?
Mahmoud Farahat
1
Ich persönlich finde den GUI Builder von ADT weder einfach noch intuitiv zu bedienen. Im Ernst, dieser Builder lässt Google schlecht aussehen.
Shiouming
8

Der einfachste Weg ist mit REBOL 3:

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

Hier sind 10 voll funktionsfähige Demo-Programme mit GUIs. Diese laufen auf Android- und Desktop-Betriebssystemen mit genau demselben Code:

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
quelle
1
+1 Schön, ich will nicht sarkastisch sein, aber es sieht so aus, als ob ich einen anderen Master-Abschluss brauche, um diesen Code herauszufinden. Sieht einfach aus, aber es gab mir das Gefühl, dass ich das alles in Montage schreibe?
Neon Warge
7

DroidDraw scheint sehr nützlich zu sein. Es hat eine saubere und einfache Oberfläche und ist eine Freeware. Verfügbar für Windows, Linux und Mac OS X. Ich rate zu einer Spende.

Wenn es Ihnen nicht gefällt, sollten Sie sich diese Seite ansehen . Es gibt einige andere Optionen und andere nützliche Tools.

rlc
quelle
Tut nichts für die native Android-Entwicklung mit nicht statischen Offline-Guis.
G_V
Es scheint, dass DroidDraw tot ist. Der Link ist aktiv, zeigt jedoch die Host-Webseite der Domain. Es ist frei ~
Neon Warge
6

Sie können auch versuchen dies . Wenn Ihnen das Model View Controller-Konzept und das schnelle Prototyping gefallen, würde ich sagen, dass Ihnen die Idee dahinter gefallen wird;)

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

Die generierte Benutzeroberfläche (Code unten):

Geben Sie hier die Bildbeschreibung ein

Der vollständige Code zum Erstellen dieser Android-Benutzeroberfläche :

Geben Sie hier die Bildbeschreibung ein

Ich verwende es in realen Anwendungen, nicht nur für schnelles Prototyping oder Dialoge, und es wurde im Laufe der Jahre gut getestet. Das Konzept basiert auf dem Prinzip der Steuerung der Modellansicht. Für die meisten gängigen Szenarien stehen gebrauchsfertige Komponenten zur Verfügung, die auf jedem Gerät automatisch korrekt aussehen. Ich sage nicht, dass es für eine Benutzeroberfläche verwendet werden sollte (z. B. sollten Listenansichten von Hand erstellt werden), aber für die meisten Fälle sollte dies recht praktisch sein;) Oh, und zögern Sie nicht, es zu teilen und weiter zu verbessern, wenn Sie möchten

Simon
quelle
4

Droiddraw ist gut. Ich benutze es seit langer Zeit und habe noch keine Probleme (obwohl es manchmal abstürzt, aber das ist in Ordnung)

lostInTransit
quelle
3
"es stürzt manchmal ab, aber das ist ok" - das ist auch mein Mantra;)
Demoncodemonkey
"es stürzt manchmal ab, aber das ist ok" - lol. das hat mich wirklich zum lachen gebracht: D
mr5
1

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

Das Erstellen einer App Inventor-App beginnt in Ihrem Browser, in dem Sie festlegen, wie die App aussehen soll. Dann legen Sie wie beim Zusammenfügen von Puzzleteilen das Verhalten Ihrer App fest. Während einer Live-Verbindung zwischen Ihrem Computer und Ihrem Telefon wird Ihre App auf Ihrem Telefon angezeigt.

Davek804
quelle
1

Dies ist eine alte Frage, die leider auch nach einigen Jahren keine gute Lösung hat. Ich habe gerade eine App von iOS (Obj C) auf Android portiert. Das größte Problem war nicht der Back-End-Code (für viele / die meisten Leute, wenn Sie in Obj C codieren können, können Sie in Java codieren), sondern das Portieren der nativen Schnittstellen. Was Todd oben gesagt hat, ist das Layout der Benutzeroberfläche immer noch ein kompletter Schmerz. Nach meiner Erfahrung ist das schnellste Wasser, um eine zuverlässige Benutzeroberfläche zu entwickeln, die mehrere Formate usw. unterstützt, in gutem alten HTML.

Nostradamus
quelle
0

Ich fand, dass die Verwendung von http://pencil.evolus.vn/ zusammen mit den Bleistiftschablonen aus dem Projekt http://code.google.com/p/android-ui-utils/ außergewöhnlich gut funktioniert. Sehr einfach zu bedienen, es ist sehr einfach, aufwändige Designs zu verspotten

Redsolo
quelle
Vielleicht fehlt mir etwas, aber soweit ich sehen kann, können Sie nur Dinge auf einem Nexus platzieren und ich bin mir nicht sicher, wie ich den XML-Code für main.xml bekommen soll
the_new_mr
0

Nicht zu sagen, dass dies der beste Weg ist, aber es ist gut, Optionen zu haben. Necessitas ist ein Projekt, das Qt auf Android portiert. Es befindet sich noch in einem frühen Stadium und es fehlen alle Funktionen, aber für diejenigen, die Qt kennen und sich nicht mit dem schrecklichen Mangel an guten Tools für die Android-Benutzeroberfläche beschäftigen möchten, wäre es ratsam, dies zumindest in Betracht zu ziehen.

tylerthemiler
quelle