Cách dễ dàng để tạo giao diện người dùng Android? [đóng cửa]


82

Có công cụ hoặc trang web nào có thể giúp tôi tạo giao diện người dùng cho ứng dụng Android bằng cách kéo và thả không?

Tôi đã tìm thấy trang web này nhưng muốn biết có công cụ hoặc trang web ổn định hơn cho việc này không?


[Cập nhật] Android Studio là trong phiên bản beta nhưng trông đầy hứa hẹn .. developer.android.com/sdk/installing/studio.html
Syed Qarib

Câu trả lời:


46

Cho phép tôi là người đưa ra một chút thực tế về chủ đề này. Không có công cụ GUI nào tốt để làm việc với Android. Nếu bạn đến từ môi trường GUI ứng dụng gốc như Delphi, bạn sẽ rất thất vọng về trải nghiệm người dùng với trình chỉnh sửa ADK và DroidDraw. Tôi đã nhiều lần cố gắng làm việc với DroidDraw một cách hiệu quả và tôi luôn quay lại việc biên tập XML bằng tay.

ADK là một điểm khởi đầu tốt, nhưng nó không dễ sử dụng. Định vị các thành phần trong bố cục là một cơn ác mộng. DroidDraw trông có vẻ tuyệt vời, nhưng tôi thậm chí không thể mở các bố cục XML chức năng, hiện có với nó. Bằng cách nào đó, nó làm mất một nửa bố cục và không thể kéo những hình ảnh mà tôi đã chỉ định cho các nút, hình nền, v.v.

Thực tế rõ ràng là không gian nhà phát triển Android đang rất cần một công cụ phát triển GUI linh hoạt, dễ sử dụng, mạnh mẽ tương tự như những công cụ được sử dụng cho phát triển .NET và Delphi.


9
Tôi đồng ý. Làm việc với các bố cục trong Android là một công việc tuyệt đối!
Kris B

4
Tôi ước họ bỏ XML hoàn toàn để ủng hộ CSS khi nói đến kiểu dáng.
WKS

Toàn bộ khung GUI của Android cần phải hoạt động nhanh chóng. Nó chỉ là không thể sử dụng được.
G_V

@G_V: Nếu bạn đang đề cập đến các điều khiển trực quan hơn là IDE, tôi xin phép khác. Tôi đã sử dụng nó được vài năm rồi và tôi khá thoải mái với nó.
Todd Grigsby

28

Plugin Công cụ phát triển Android (ADT) cho Eclipse bao gồm trình chỉnh sửa trực quan cho các tệp bố cục ứng dụng Android:

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


4
Đặc biệt là cái đi kèm với Android SDK 1.5, nó tốt hơn nhiều so với DroidDraw.
Isaac Waller

8
Nếu ai đó gặp khó khăn khi tìm kiếm điều này (tôi biết là tôi đã làm), chỉ cần mở main.xml của bạn trong Eclipse. Nếu không thành công, hãy nhấp chuột phải vào nó, Mở bằng> Trình chỉnh sửa bố cục Android. Nếu không thành công, ADT của bạn có thể không được cài đặt đúng cách.
MSpeed

12
Trình chỉnh sửa trực quan trong Eclipse thật tệ. Nó thực sự gây ức chế trong việc cho phép người dùng sắp xếp mọi thứ đúng cách.
IgorGanapolsky

@IgorGanapolsky có gì tốt hơn Eclipse ?, bạn đề xuất điều gì?
Mahmoud Farahat

1
Cá nhân tôi không thấy trình tạo GUI của ADT dễ sử dụng cũng như trực quan. Nghiêm túc mà nói, trình tạo đó khiến Google trông tệ hại.
shiouming

8

Cách dễ nhất là với REBOL 3:

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

Dưới đây là 10 chương trình demo đầy đủ chức năng, với GUI. Chúng chạy trên hệ điều hành Android máy tính để bàn, sử dụng cùng một mã chính xác:

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 Tốt, tôi không có ý mỉa mai nhưng có vẻ như tôi cần một bằng thạc sĩ khác để tìm ra mã này. Trông đơn giản nhưng nó cho tôi cảm giác rằng tôi đang viết tất cả những điều này trong lắp ráp?
Neon Warge

7

DroidDraw dường như rất hữu ích. Nó có một giao diện sạch sẽ và dễ dàng và nó là một phần mềm miễn phí. Có sẵn cho Windows, Linux và Mac OS X. Tôi khuyên bạn nên đóng góp.

Nếu bạn không thích nó, bạn nên xem trang web này . Có một số tùy chọn khác và các công cụ hữu ích khác.


Không có gì để phát triển Android gốc với guis ngoại tuyến không tĩnh.
G_V

Có vẻ như DroidDraw đã chết. Liên kết đang hoạt động nhưng nó hiển thị trang web lưu trữ của miền. Chỗ trống của nó ~
Neon Warge

6

Bạn cũng có thể thử điều này . Nếu bạn thích khái niệm bộ điều khiển chế độ xem mô hình và tạo mẫu nhanh thì tôi sẽ nói rằng bạn sẽ thích ý tưởng đằng sau nó;)

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

Giao diện người dùng được tạo (mã bên dưới):

nhập mô tả hình ảnh ở đây

Mã hoàn chỉnh để tạo giao diện người dùng Android này :

nhập mô tả hình ảnh ở đây

Tôi sử dụng nó trong các ứng dụng thực tế, không chỉ để tạo mẫu hoặc hộp thoại nhanh và nó đã được kiểm tra kỹ lưỡng trong nhiều năm. Khái niệm này dựa trên nguyên tắc điều khiển chế độ xem mô hình và đối với hầu hết các tình huống phổ biến, các thành phần sẵn sàng sử dụng sẽ tự động trông đúng trên bất kỳ thiết bị nào. Tôi không nói nó nên được sử dụng cho bất kỳ giao diện người dùng nào (ví dụ: các lần xem danh sách nên được thực hiện bằng tay) nhưng đối với hầu hết các cơ chế sử dụng, điều này sẽ khá tiện dụng;)


4

Droiddraw là tốt. Tôi đã sử dụng nó từ lâu và chưa gặp phải bất kỳ vấn đề nào (mặc dù đôi khi nó bị treo, nhưng điều đó không sao)


3
"nó bị treo đôi khi, nhưng thats ok" - đó là câu thần chú của tôi quá;)
demoncodemonkey

"đôi khi nó bị treo, nhưng không sao" - lol. điều đó làm tôi thực sự cười: D
mr5



1

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

Việc tạo ứng dụng App Inventor bắt đầu trong trình duyệt của bạn, nơi bạn thiết kế giao diện của ứng dụng. Sau đó, giống như lắp các mảnh ghép lại với nhau, bạn thiết lập hành vi của ứng dụng. Đồng thời, thông qua kết nối trực tiếp giữa máy tính và điện thoại của bạn, ứng dụng của bạn sẽ xuất hiện trên điện thoại của bạn.


1

Đây là một câu hỏi cũ, không may là thậm chí vài năm vẫn chưa có lời giải hay. Tôi vừa chuyển một ứng dụng từ iOS (obj C) sang Android. Vấn đề lớn nhất không phải là mã back end (đối với nhiều người / hầu hết mọi người, nếu bạn có thể viết mã trong Obj C thì bạn có thể viết mã bằng Java) mà là việc chuyển các giao diện gốc. Những gì Todd đã nói ở trên, bố cục giao diện người dùng vẫn còn là một nỗi đau hoàn toàn. Theo kinh nghiệm của tôi, cách nhanh nhất để phát triển một giao diện người dùng đáng tin cậy hỗ trợ nhiều định dạng, v.v. là ở HTML tốt.


0

Tôi nhận thấy rằng việc sử dụng http://pencil.evolus.vn/ cùng với giấy nến bút chì từ dự án http://code.google.com/p/android-ui-utils/ hoạt động rất hiệu quả. Rất đơn giản để sử dụng, rất dễ dàng để mô phỏng các thiết kế phức tạp


Có lẽ tôi là thiếu một cái gì đó, nhưng như xa như tôi có thể thấy, bạn chỉ có thể diễn ra những thứ trên Nexus One và tôi không chắc chắn làm thế nào để lấy mã xml cho main.xml
the_new_mr

0

Không nói rằng đây là cách tốt nhất để đi, nhưng nó tốt khi có các lựa chọn. N Needitas là một dự án chuyển Qt sang android. Nó vẫn đang trong giai đoạn đầu và thiếu các tính năng đầy đủ, nhưng đối với những người biết Qt và không muốn bận tâm đến việc thiếu các công cụ tốt cho giao diện người dùng Android thì sẽ là khôn ngoan khi ít nhất nên cân nhắc sử dụng điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.