GUI 可视化设计器——DroidDraw
DroidDraw 是一个基于 Java Swing 的 Android 界面设计器,可以通过它来生成复杂的 Android Layout XML 文件,Android 的 Layout 和 Swing Layout 中有很好的对应,设计器的代码编写起来比较容易。
AnDroidDraw 是一个与 DroidDraw 集成的 Android 应用程序,它允许你从 DroidDraw 应用程序下载你的 GUIs,也允许你在一个 Android 设备上预览你的 GUIs.下载DroidDraw
步骤一
在你的 Android 设备上运行 AnDroidDraw,你应该看到像这样的:
步骤二
在你的电脑上运行 DroidDraw,并且创建一个 GUI,(获取更多关于创建 GUI 的信息,请看教程 1、教程2、教程 3。)接下来从 DroidDraw 菜单中选择"Project"->"Send GUI to Deviec"
步骤三
现在你应该在 Android 屏幕上看到你新创建的 GUI 的像这样的 xml:
步骤四
点击"Preview GUI"按钮来预览你的 GUI。
步骤五
当你结束时,点击向后的箭头,来返回到 AnDroidDraw 的主屏幕。
记住,如果你感兴趣,你可以在文本框中编辑该 XML 文件,并且再次点击"Preview GUI"来查看你的修改。然而,这些修改将不会返回到 DroidDraw。
DroidDraw 教程一:Currency Converter
本教程将给你一个简短的介绍开关于使用 DroidDraw 用户界面设计器来开发一个在 Android 上的 GUI 应用程序。本教程假设你已经下载并安装了 Android SDK。本教程也假设你对 GUI 编程概念和 Java 编程语言相当熟悉。
步骤一
步骤二
设置根布局为 RelativeLayout(相对布局)
步骤三
选择"Layout"标签
步骤四
从 Layouts 面板中把一个 LinearLayout 对象拖放到屏幕顶部中心位置
步骤五
选择该 LinearLayout 对象并点击属性"Properties"标签来开始编辑 layout 属性值。把宽度"width"改成"200px",高度"height"改成"130px"点击"Apply"来应用改变。
步骤六
转到"Widgets"标签
步骤七
把两个 TextView 对象和两个 EditText 对象交替地拖放到 LinearLayout 中
步骤八
把一个 RadioGroup 对象拖放进 LinearLayout 中。把两个 RadioButton 对象拖放到 RadioGroup 中。
步骤九
把一个 Button 对象拖放到根 RelativeLayout 中,它在 LinearLayout 对象下面。它应该和 LinearLayout 的右边
对齐。
步骤十
编辑每个 TextView 对象的属性值。上面一个的文本设置成"Dollars",并设置成"bold"字体样式。下面一个
TextView 的文本设置成"Euros",并也设置成"bold"字体样式。
步骤十一
如以下内容编辑上面一个 EditText 的属性值:
- id 修改成:"@+id/dollars"
- 文本内容设置为空
- 宽度修改成"100px"
步骤十一半
在"Euros"TextView 下面的第二个 EditText 上重复步骤十一,但是把 id 设置为"@+id/euros"
步骤十二
- 编辑第一个 RadioButton 属性:文本设置为"Dollars to Euros",并把它 id 设置成"@+id/dtoe"
- 编辑第二个 RadioButton 属性:文本设置为"Euros to Dollars ",并把它 id 设置成"@+id/etod"
重要注意事项
你必须正确地获取 id,因为这是你在代码中如何获取搜索到该 UI 元素的方式。
步骤十三
编辑 Button 属性:文本修改为"Convert"、它的 id 设置成"@+id/convert"。
最终的 GUI 应该像这样:
步骤十四
点击"Generate"按钮来生成 XML 布局。该 xml 应像这样:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout
- android:id="@+id/widget30"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <LinearLayout
- android:id="@+id/widget31"
- android:layout_width="180px"
- android:layout_height="228px"
- android:orientation="vertical"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true">
- <TextView
- android:id="@+id/widget41"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Dollars"
- android:textStyle="bold">
- </TextView>
- <EditText
- android:id="@+id/dollars"
- android:layout_width="100px"
- android:layout_height="wrap_content"
- android:textSize="18sp"></EditText>
- <TextView
- android:id="@+id/widget43"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Euros"
- android:textStyle="bold"></TextView>
- <EditText
- android:id="@+id/euros"
- android:layout_width="100px"
- android:layout_height="wrap_content"
- android:textSize="18sp"></EditText>
- <RadioGroup
- android:id="@+id/widget45"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <RadioButton
- android:id="@+id/dtoe"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Dollars to Euros">
- </RadioButton>
- <RadioButton
- android:id="@+id/etod"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Euros to Dollars">
- </RadioButton>
- </RadioGroup>
- </LinearLayout>
- <Button
- android:id="@+id/convert"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Convert"
- android:layout_below="@+id/widget31"
- android:layout_alignRight="@+id/widget31">
- </Button>
- </RelativeLayout>
复制代码
步骤十五
在 Eclipse 中创建一个新的 Android 工程。从 DroidDraw 剪切该 XML 并粘贴替换到 res/layout/main.xml 的内
容中。
到这里你就可以在 Android 中运行你的 GUI。它应该像这样:
步骤十六
最后一步是实际的代码货币转换。它不多,你可以用一下代码来查找到你的 GUI 元素:
>"Generate"按钮来生成 XML 布局。该 xml 应像这样:
结果:
DroidDraw 教程二: Table Layout
本教程描述如何创建一个从 DroidDraw 简单的输入和 TableLayout 布局。本教程假设你已经下载并安装了
Android SDK。本教程也假设你对 GUI 编程概念和 Java 编程语言相当熟悉。
步骤一
步骤二
根布局选择为 RelativeLayout 布局
2011-9-26 10:02 上传
步骤三
选择"Layouts"标签
2011-9-26 10:02 上传
步骤四
把一个 TableLayout 对象从 Layouts 面板中拖放到屏幕顶的中部。
2011-9-26 10:02 上传
步骤五
双击"TableLayout"来修改它的属性。把它的宽度"width"改为"fill_parent"
2011-9-26 10:03 上传
步骤六
把三个 TableRow 对象从 Layouts 面板中拖放到 TableLayout 对象中。当你拖放 TableRow 对象时,你应该从弹
出菜单中选择 TableLayout。
2011-9-26 10:03 上传
步骤七
每一个 TableRow 中拖放一个 TextView:
2011-9-26 10:03 上传
步骤八
双击每一个 TextView 来修改它的属性,修改显示文本如下图一样:
2011-9-26 10:03 上传
步骤九
每一个 TableRow 中拖放一个 EditText,放在存在的文本右边。
2011-9-26 10:03 上传
步骤十
选中 TableLayout,修改"Stretchable Column"(可扩展栏)属性值为 1,这将把所有的EditText widget 扩展开来
填充满该 Table 表格。
步骤十一
2011-9-26 10:03 上传
编辑每一个 EditText 的属性,让 Text 文本属性为""
步骤十二
把一个 Button 拖放到 TableLayout 下面的右下角空白处。它应该在 TableLayout 的外面并和它右对齐。
2011-9-26 10:03 上传
步骤十三
修改该按钮的属性,文本设置为"OK"
2011-9-26 10:03 上传
步骤十四
点击"Generate"按钮来生成.xml 文件
步骤十五
在 Eclipse 中,创建一个新的 Android 工程
步骤十六
用第十五步骤生成的 XML 来替换 res/layouts/mian.xml 文件内容。
步骤十七
2011-9-26 10:03 上传
运行你的新工程,你应该在 Android 中看到你的 GUI。它应该像这样:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout
- android:id="@+id/widget49"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <TableLayout
- android:id="@+id/widget54"
- android:layout_height="160px"
- android:orientation="vertical"
- android:stretchColumns="1"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true" android:layout_width="fill_parent">
- <TableRow
- android:id="@+id/widget55"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <TextView
- android:id="@+id/widget58"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Name">
- </TextView>
- <EditText
- android:id="@+id/widget61"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="18sp">
- </EditText>
- </TableRow>
- <TableRow
- android:id="@+id/widget56"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <TextView
- android:id="@+id/widget59"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Phone">
- </TextView>
- <EditText
- android:id="@+id/widget62"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="18sp">
- </EditText>
- </TableRow>
- <TableRow
- android:id="@+id/widget57"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <TextView
- android:id="@+id/widget60"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="E-Mail">
- </TextView>
- <EditText
- android:id="@+id/widget63"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="18sp">
- </EditText>
- </TableRow>
- </TableLayout>
- <Button
- android:id="@+id/widget64"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Button"
- android:layout_below="@+id/widget54"
- android:layout_alignRight="@+id/widget54">
- </Button>
- </RelativeLayout>
复制代码
结果:
2011-9-26 10:02 上传
-
7.jpg (9.15 KB, 下载次数: 6)
2011-9-26 10:03 上传
点击文件名下载附件
DroidDraw 教程三:使用 ListView 和 array 资源
在 Eclipse 新建一个工程
步骤一 - 创建初始化布局
- 开启 DroidDraw 并创建一个新的 Layout
- 从 Widget 列表中拖放一个 ListView 放入该 Layout 中
- 双击该 ListView 编辑它的属性
- 把它的宽、高属性值改为"fill_parent"
- 点击"Applay"按钮
步骤二 - 创建一个 Array 数组资源
注意:这些使用说明是针对独立的 DroidDraw 可执行文件的。
- 点击 DroidDraw 中的"Arrays"标签
- 点击"New"按钮来添加一个新的 Array 数组
- 当提示名称时,使用"items"
- 对于数组值,使用","逗号来隔开列表的值
- 点击"Save"按钮并把该文件保存为 arrays.xml,保存在你工程 res/values 目录中
步骤三 - 让你的列表和数组连接
在你第一步创建的 ListView 上双击
修改"Entry Array Id"属性为"@+id/items"
点击"Apply"按钮
生成 Layout 布局文件并保存它为 main.xml,保存到你工程 res/layouts 目录中
步骤四 代码:
使用以下代码在你的 mainActivity.java 文件中:
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle icicle) {
- /** Called when the activity is first created. */
- super.onCreate(icicle);
- this.setTitle("DroidDraw");
- setContentView(R.layout.main);
- }
复制代码
步骤五 - 完成
在 Android 模拟器中运行你的代码
结果
Android GUI Widget 可视化指导
作为一个 Java Android 手机开发员、UI 设计者,为了让你的生活更简单。尝试用 DroidDraw 来高速开发你
的用户界面
AnalogClock
2011-9-26 21:12 上传
- <AnalogClock
- android:id="@+id/clock1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
复制代码
Button
2011-9-26 21:14 上传
- <Button android:id ="@+id/button1"
- android:text="Label"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"/>
- <Button
- android:id ="@+id/button2"
- android:text="Label"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:typeface="serif"/>
- <Button
- android:id ="@+id/button3"
- android:text="Label"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:textStyle="bold|italic"/>
复制代码
CheckBox
2011-9-26 21:14 上传
- <CheckBox
- android:id="@+id/plain_cb"
- android:text="Plain"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- <CheckBox
- android:id="@+id/serif_cb"
- android:text="Serif"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:typeface="serif"
- />
- <CheckBox
- android:id="@+id/bold_cb"
- android:text="Bold"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textStyle="bold"
- />
- <CheckBox
- android:id ="@+id/italic_cb"
- android:text="Italic"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textStyle="italic"
- />
复制代码
DatePicker
2011-9-26 21:14 上传
- <DatePicker
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" >
- ……
- // Required Java init code:
- DatePicker dp =
- (DatePicker)this.findViewById(R.id.widget27);
- // for example init to 1/27/2008, no callback
- dp.init(2008, 0, 27, Calendar.SUNDAY, null);
- ...
复制代码
DigitalClock
2011-9-26 21:14 上传
- <DigitalClock
- android:id="@+id/digitalclock"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
复制代码
EditText
2011-9-26 21:14 上传
- <EditText
- android:id ="@+id/edittext1"
- android:text="EditText 1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- <EditText
- android:id ="@+id/button2"
- android:text="(206)555-1212"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:typeface="serif"
- android:phoneNumber="true"
- />
- <EditText
- android:id ="@+id/password"
- android:text="SuperSecret"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textStyle="bold|italic"
- android:password="true"
- />
复制代码
Gallery
2011-9-26 21:14 上传
- <Gallery
- android:id="@+id/gallery"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
复制代码
ImageButton
2011-9-26 21:14 上传
- <ImageButton
- android:id="@+id/imagebutton"
- android:src="@drawable/brush"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
复制代码
ImageView
2011-9-26 21:14 上传
- <ImageView
- android:id="@+id/imagebutton"
- android:src="@drawable/brush"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
复制代码
ProgressBar
2011-9-26 21:14 上传
- <ProgressBar
- android:id="@+id/progress"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
复制代码
Spinner
2011-9-26 21:14 上传
- <Spinner
- android:id="@+id/widget1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:drawSelectorOnTop="false"/>
复制代码
TimePicker
2011-9-26 21:14 上传
- <TimePicker
- android:id="@+id/widget3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
复制代码
RadioButton
2011-9-26 21:14 上传
- <RadioGroup
- android:id="@+id/widget1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical">
- <RadioButton
- android:id="@+id/widget2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Plain"
- android:checked="false"
- android:layout_gravity="left"
- android:layout_weight="0">
- </RadioButton>
- <RadioButton
- android:id="@+id/widget3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Serif"
- android:checked="true"
- android:layout_gravity="left"
- android:layout_weight="0"
- android:typeface="serif">
- </RadioButton>
- <RadioButton
- android:id="@+id/widget25"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Bold"
- android:checked="false"
- android:layout_weight="0"
- android:layout_gravity="left"
- android:textStyle="bold">
- </RadioButton>
- <RadioButton
- android:id="@+id/widget24"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Bold & Italic"
- android:checked="false"
- android:layout_weight="0"
- android:layout_gravity="left"
- android:textStyle="bold_italic">
- </RadioButton>
- </RadioGroup>
复制代码
TextView
- <TextView
- android:id="@+id/plain"
- android:text="Plain"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/serif"
- android:text="Serif"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:typeface="serif"/>
- <TextView
- android:id="@+id/bold"
- android:text="Bold"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textStyle="bold"/>
- <TextView
- android:id ="@+id/italic"
- android:text="Italic"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textStyle="italic"/>