Простой способ создать пользовательский интерфейс Android? [закрыто]


82

Есть ли инструмент или веб-сайт, которые могут помочь мне создать пользовательский интерфейс для приложения Android с помощью перетаскивания?

Я нашел этот сайт, но хочу знать, есть ли для этого более стабильный инструмент или веб-сайт?


[Обновление] Android Studio находится на
стадии

Ответы:


46

Позвольте мне быть тем, кто привнесет немного реальности в эту тему. Хорошего графического интерфейса для работы с Android не существует. Если вы работаете в среде графического интерфейса собственного приложения, например, в Delphi, вы, к сожалению, разочаруетесь в удобстве использования редактора ADK и DroidDraw. Я несколько раз пробовал продуктивно работать с DroidDraw и всегда возвращаюсь к раскрутке XML вручную.

ADK - хорошая отправная точка, но пользоваться им непросто. Размещение компонентов внутри макетов - это кошмар. DroidDraw выглядит фантастически, но я даже не могу открыть с его помощью существующие функциональные XML-макеты. Он каким-то образом теряет половину макета и не может втягивать изображения, которые я указал для кнопок, фона и т. Д.

Суровая реальность такова, что пространство для разработчиков Android остро нуждается в гибком, простом в использовании, надежном средстве разработки с графическим интерфейсом пользователя, аналогичном тем, которые используются для разработки .NET и Delphi.


9
Я согласен. Работа с макетами в Android - абсолютная заноза в заднице!
Kris B

4
Я бы хотел, чтобы они полностью отказались от XML в пользу CSS, когда дело доходит до стиля.
WKS

Вся структура графического интерфейса Android должна быть запущена быстро. Это просто невозможно использовать.
G_V

@G_V: Если вы имеете в виду визуальные элементы управления, а не IDE, я бы хотел не согласиться. Я использую его уже несколько лет, и мне он довольно удобен.
Тодд Григсби

28

Плагин Android Development Tools (ADT) для Eclipse включает визуальный редактор для файлов макетов приложений Android:

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


4
Особенно тот, который поставляется с Android SDK 1.5, он намного лучше, чем DroidDraw.
Исаак Уоллер,

8
Если у кого-то возникнут проблемы с его поиском (я знаю, что это было), просто откройте свой main.xml в Eclipse. Если это не удается, щелкните его правой кнопкой мыши, откройте с помощью> Редактор макета Android. Если это не удается, возможно, ваш ADT установлен неправильно.
MSpeed,

12
Визуальный редактор в Eclipse - отстой. Это действительно мешает пользователю правильно разложить вещи.
Игорь Ганапольский

@IgorGanapolsky, что лучше Eclipse? Что ты посоветуешь?
Махмуд Фарахат

1
Я лично не нахожу конструктор графического интерфейса ADT простым и интуитивно понятным в использовании. Серьезно, из-за этого конструктора Google плохо выглядит.
shiouming

8

Самый простой способ - с REBOL 3:

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

Вот 10 полнофункциональных демонстрационных программ с графическим интерфейсом пользователя. Они работают на ОС 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
+1 Приятно, я не хочу быть саркастичным, но похоже, что мне нужна еще одна степень магистра, чтобы разобраться в этом коде. Выглядит просто, но у меня возникло ощущение, что я все это пишу на ассемблере?
Neon Warge

7

DroidDraw кажется очень полезным. У него чистый и простой интерфейс, и это бесплатная программа. Доступно для Windows, Linux и Mac OS X. Я советую сделать пожертвование.

Если вам это не нравится, вам стоит заглянуть на этот сайт . Есть еще несколько вариантов и другие полезные инструменты.


Ничего не делает для собственной разработки под Android с автономным нестатическим интерфейсом.
G_V

Похоже, DroidDraw мертв. Ссылка активна, но показывает веб-страницу хоста домена. Его
пусто

6

Вы также можете попробовать это . Если вам нравится концепция контроллера представления модели и быстрое прототипирование, я бы сказал, что вам понравится идея, лежащая в основе этого;)

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

Сгенерированный пользовательский интерфейс (код ниже):

введите описание изображения здесь

Полный код для создания этого пользовательского интерфейса Android :

введите описание изображения здесь

Я использую его в реальных приложениях, не только для быстрого прототипирования или диалогов, и он хорошо протестирован на протяжении многих лет. Концепция основана на принципе управления представлением модели, и для наиболее распространенных сценариев есть готовые к использованию компоненты, которые автоматически выглядят правильно на любом устройстве. Я не говорю, что его следует использовать для любого пользовательского интерфейса (например, просмотр списков должен выполняться вручную), но для большинства случаев использования это должно быть весьма удобно;) О, и не стесняйтесь создавать его и улучшать, если хотите


4

Droiddraw хорош. Я использую его давно и пока не сталкивался с какими-либо проблемами (хотя иногда он вылетает, но это нормально)


3
«иногда вылетает, но ничего
страшного

"иногда вылетает, но ничего страшного" - смеется. это меня действительно рассмешило: D
mr5



1

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

Создание приложения App Inventor начинается в вашем браузере, где вы проектируете, как приложение будет выглядеть. Затем, подобно соединению кусочков пазла, вы задаете поведение своего приложения. Все это время благодаря живому соединению между вашим компьютером и телефоном ваше приложение появляется на вашем телефоне.


1

Это старый вопрос, который, к сожалению, не имеет хорошего решения даже через несколько лет. Я только что перенес приложение с iOS (Obj C) на Android. Самая большая проблема заключалась не во внутреннем коде (для многих / большинства людей, если вы умеете писать код на Obj C, вы можете писать код на Java), а в переносе собственных интерфейсов. Как сказал Тодд выше, макет пользовательского интерфейса по-прежнему вызывает боль. По моему опыту, самый быстрый способ разработать надежный интерфейс, поддерживающий несколько форматов и т. Д., - это старый добрый HTML.


0

Я обнаружил, что использование http://pencil.evolus.vn/ вместе с карандашными трафаретами из проекта http://code.google.com/p/android-ui-utils/ работает исключительно хорошо. Очень прост в использовании, очень легко смоделировать сложные конструкции


Возможно, мне что-то не хватает, но, насколько я понимаю, вы можете размещать вещи только на Nexus one, и я не уверен, как получить xml-код для main.xml
the_new_mr

0

Не говорю, что это лучший способ, но хорошо иметь варианты. Necessitas - это проект, который портирует Qt на android. Он все еще находится на начальной стадии и ему не хватает полных функций, но для тех, кто знает Qt и не хочет беспокоиться о ужасном отсутствии хороших инструментов для пользовательского интерфейса Android, было бы разумно хотя бы подумать об использовании этого.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.