构建Android UI的简单方法? [关闭]

Posted

技术标签:

【中文标题】构建Android UI的简单方法? [关闭]【英文标题】:Easy way to build Android UI? [closed] 【发布时间】:2010-10-25 12:16:46 【问题描述】:

是否有工具或网站可以帮助我使用拖放功能为 android 应用程序创建 UI?

我找到了this site,但想知道是否有更稳定的工具或网站来解决这个问题?

【问题讨论】:

[更新] Android Studio 处于测试阶段,但看起来很有希望..developer.android.com/sdk/installing/studio.html 【参考方案1】:

请允许我在这个话题上加上一点现实。没有用于 Android 的良好 GUI 工具。如果您来自像 Delphi 这样的原生应用程序 GUI 环境,您将会对 ADK 编辑器和 DroidDraw 的用户体验感到非常失望。我已经尝试过几次以高效的方式使用 DroidDraw,但我总是重新手动滚动 XML。

ADK 是一个很好的起点,但它并不易于使用。在布局中定位组件是一场噩梦。 DroidDraw 看起来很棒,但我什至无法用它打开现有的功能性 XML 布局。它以某种方式丢失了一半的布局,并且无法提取我为按钮、背景等指定的图像。

严峻的现实是,Android 开发人员领域迫切需要一种灵活、易于使用、功能强大的 GUI 开发工具,类似于用于 .NET 和 Delphi 开发的工具。

【讨论】:

我同意。在 Android 中使用布局绝对是一件令人头疼的事情! 我希望他们在样式方面完全抛弃 XML,转而使用 CSS。 整个 Android GUI 框架需要快速运行。它只是不可用。 @G_V:如果您指的是可视化控件而不是 IDE,我会有所不同。我已经用了几年了,感觉很舒服。【参考方案2】:

Eclipse 的 Android 开发工具 (ADT) 插件包括一个用于 android 应用程序布局文件的可视化编辑器:

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

【讨论】:

尤其是Android SDK 1.5自带的,比DroidDraw好多了。 如果有人找不到这个(我知道我找到了),只需在 Eclipse 中打开您的 main.xml。如果失败,请右键单击它,打开方式 > Android 布局编辑器。如果失败,您的 ADT 可能没有正确安装。 Eclipse 中的可视化编辑器很烂。允许用户正确布置东西确实是一种抑制。 @IgorGanapolsky 什么比 Eclipse 更好?你有什么建议? 我个人认为 ADT 的 GUI 构建器使用起来既不方便也不直观。说真的,那个构建器让 Google 看起来很糟糕。【参考方案3】:

最简单的方法是使用 REBOL 3:

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

这里有 10 个功能齐全的演示程序,带有 GUI。这些在 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 很好,我并不是要讽刺,但看起来我需要另一个硕士学位才能弄清楚这段代码。看起来很简单,但它给我的感觉是我在汇编中编写所有这些?【参考方案4】:

DroidDraw 似乎很有用。它有一个干净和简单的界面,它是一个免费软件。适用于 Windows、Linux 和 Mac OS X。我建议捐款。

如果你不喜欢它,你应该看看this site。还有一些其他选项和其他有用的工具。

【讨论】:

对于使用离线非静态 gui 的原生 android 开发没有任何作用。 DroidDraw 似乎已经死了。该链接处于活动状态,但它显示了域的主机网页。空着~【参考方案5】:

你也可以试试this。如果您喜欢模型视图控制器概念和快速原型设计,那么我会说您会喜欢它背后的想法;)

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

生成的 UI(代码如下):

The complete code to create this Android UI:

我在实际应用中使用它,不仅用于快速原型设计或对话,而且多年来它经过了良好的测试。该概念基于模型视图控制原理,对于大多数常见场景,有现成的组件可以在任何设备上自动看起来正确。我并不是说它应该用于任何 UI(例如,列表视图应该手动完成),但对于大多数用例来说,这应该非常方便;)哦,如果你愿意,可以随意分叉并进一步改进它

【讨论】:

【参考方案6】:

Droiddraw 不错。我一直在使用它很久,还没有遇到任何问题(虽然它有时会崩溃,但没关系)

【讨论】:

“它有时会崩溃,但没关系”——这也是我的口头禅;) “它有时会崩溃,但没关系” - 哈哈。这让我真的笑了:D【参考方案7】:

https://play.google.com/store/apps/details?id=com.mycompany.easyGUI 试试这个工具,它不是免费的,但提供了在手机上创建 android ui 的简单方法

【讨论】:

【参考方案8】:

这看起来像是一个更有前途的解决方案:IntelliJ Android UI Designer。

http://blogs.jetbrains.com/idea/2012/06/android-ui-designer-coming-in-intellij-idea-12/

【讨论】:

顺便说一句,这个解决方案似乎不是“免费啤酒” 社区版是“免费啤酒”。【参考方案9】:

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

在您的浏览器中创建 App Inventor 应用程序,您可以在其中进行设计 应用程序的外观。然后,就像拼图一样,你 设置应用的行为。一直以来,通过实时连接 在您的计算机和手机之间,您的应用会出现在您的手机上。

【讨论】:

【参考方案10】:

这是一个老问题,不幸的是,即使是几年后也没有一个好的解决方案。我刚刚将一个应用程序从 ios (Obj C) 移植到 Android。最大的问题不是后端代码(对于许多/大多数人来说,如果你可以用 Obj C 编码,你就可以用 Java 编码),而是移植本机接口。 Todd 上面所说的,UI 布局仍然是一个完整的痛苦。根据我的经验,开发支持多种格式等的可靠 UI 的最快方法是使用良好的 HTML。

【讨论】:

【参考方案11】:

我发现将http://pencil.evolus.vn/ 与http://code.google.com/p/android-ui-utils/ 项目中的铅笔模板一起使用效果非常好。使用非常简单,很容易模拟复杂的设计

【讨论】:

也许我遗漏了一些东西,但据我所知,您只能将东西放在 Nexus 上,而且我不确定如何获取 main.xml 的 xml 代码跨度> 【参考方案12】:

并不是说这是最好的方法,但有选择是件好事。 Necessitas 是一个将 Qt 移植到 android 的项目。它仍处于早期阶段并且缺乏完整的功能,但对于那些了解 Qt 并且不想为 Android UI 缺乏好的工具而烦恼的人来说,至少考虑使用它是明智的。

【讨论】:

以上是关于构建Android UI的简单方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里可以找到一些好的 Android UI 示例? [关闭]

Android自定义UI控件(简单方便版,但不灵活)

用于构建 Web 应用程序的技术堆栈 [关闭]

android中如何实现UI的实时更新

适用于非 UI 人员的简单 Web UI 工具 [关闭]

Android 的 Instagram 是如何构建的? [关闭]