没有合适的资源?快使用搜索试试~ 我知道了~
android_UI布局设计.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 10 浏览量
2021-10-02
11:08:05
上传
评论
收藏 2.33MB PDF 举报
温馨提示
试读
50页
android_UI布局设计.pdf
资源推荐
资源详情
资源评论
Android UI 设计
无意中看到的几篇文章, 想翻译出来分享给大家。 不过声明, 翻译后的意思不一
定能完全表达作者的意图,如果想看原文,请参考:
http://mobiforge.com/designing/story/understanding-user-interface-android
-part-1-layouts
到目前为止,我之前的几篇关于 Android 的文章都集中于向你展示如何解决 An
droid 中的问题, 而没有花太多的时间来讨论 Android 应用程序开发的视觉元素
—— UI设计。在这篇和接下来的文章,我将带你穿越构建 Android 应用程序的
UI 元素。文章的开始部分,我将讨论 Android 中的一些布局( Layouts )和一些
在屏幕上摆放的构件( Widget )。
Android 屏幕 UI 组件
到这个时点,你已经看到 Android 应用程序最基本的单元式 Activity 。Activity
用于显示应用程序的 UI ,它可能包含许多构件,如 buttons, labels, text boxes
等。一般,你会使用一个 XML 文件(例如,位于 res/ layout 文件夹下的 main.
xml 文件)来定义你的 UI ,它看起来像这样:
<?xml version ="1.0" encoding ="utf-8" ?>
<LinearLayout xmlns:android ="http://schemas.android.com/a
pk/res/android"
android:orientation ="vertical"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
>
<TextView
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="@string/hello"
/>
</LinearLayout>
在运行时,你在 Activity 的 onCreate 事件处理函数里加载 XML UI ,使用 Ac
tivity 类的 setContentView 方法:
1
2
3
4
5
@Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState ) ;
setContentView ( R. layout . main ) ;
}
在编译期间, XML 文件中的元素会编译成相应地 Android GUI 类,并设定了指定的特性。当加载时, An
droid 系统会创建 Activity 的 UI 。
使用 XML 文件来构建 UI 往往是比较容易的, 然后,也存在一些时候需要你在运行时动态地构建 UI(例如,
当编写游戏)。因此,也有可能完全通过代码来创建的你的 UI 。
Views 和 ViewGroups
一个 Activity 包含 View 和 ViewGroup 。一个 View 是一个构件,它在屏幕上有一个外观。构件包括 bu
ttons, labels, text boxes 等。一个 View 继承自 android.view.View 基类。
一个或多个 View 可以组合起来放入一个 ViewGroup 。一个 ViewGroup (它是特殊类型的 View )提供
一个布局, 在其上你可以安排 View 的显示和次序。 ViewGroup 包括 LinearLayout, FrameLayout 等。
一个 ViewGroup 继承自 android.view.ViewGroup 基类。
Android 支持以下的 ViewGroup :
? LinearLayout
? AbsoluteLayout
?
TableLayout
?
RelativeLayout
?
FrameLayout
?
ScrollView
接下来的章节将讨论每个 ViewGroup 的细节。注意,在练习中,通常会嵌套不同类型的布局来创建想要
的 UI 。
创建一个简单工程
创建一个新的 Android 工程,如图 1 所示命名它。
图 1 使用 Eclipse 来创建一个新的 Android 工程
Eclipse 支持很少的 Android UI 设计,因此,你不能在设计面板上进行构件的
拖拽。作为替代的,你可以使用免费的 DroidDraw 工具(从 http://www.droid
draw.org/ 获取)。图 2 显示了动作中的 DroidDraw 。你可以在不同的布局上
拖拽构件,然后使用它来生成等价的 XML 代码。然后 DroidDraw 不是很完美,
对于你刚开始 Android 的 UI 设计来说还是非常有用的,并且它是学习 Android
中众多的 View 和 ViewGroup 的得力工具。
图 2 DroidDraw 网页应用程序来设计你的 AndroidUI
你还可以下载独立的 DroidDraw 版本( Windows, Mac OS X, Linux )。
LinearLayout
LinearLayout 以单一的行或列来布局 View 。子 View 既可以垂直摆放也可以水
平摆放。查看 LinearLayout 如何工作,让我们修改一下工程的 main.xml 文件:
2
<?xml version ="1.0" encoding ="utf-8" ?>
<LinearLayout xmlns:android ="http://schemas.android.com/
apk/res/android"
android:orientation ="vertical"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
>
<TextView
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="@string/hello"
/>
</LinearLayout>
在 main.xml 文件中,可以看到根元素是,并且它包含一个元素。元素控制着其内元素的顺序和显示。
每个 View 和 ViewGroup 都有一堆通用的特性,其中一部分显示在表 1 中。
特性 描述
layout_width 指定 View 或 ViewGroup 的宽度
layout_height 指定 View 或 ViewGroup 的高度
layout_marginTop
指定 View 或 ViewGroup 上方的空间
layout_marginBottom 指定 View 或 ViewGroup 下方的空间
layout_marginLeft
指定 View 或 ViewGroup 左边的空间
layout_marginRight 指定 View 或 ViewGroup 右边的空间
layout_gravity 指定子 View 如何摆放
layout_weight
指定 Layout 的剩余空间的多少分配给 View
layout_x 指定 View 或 ViewGroup 的 x 坐标
layout_y
指定 View 或 ViewGroup 的 y 坐标
表 1 View 和 ViewGroup 的通用特性
注意,这些特性中的部分只在当一个 View 位于某个特定的 ViewGroup 里才能
应用。例如, layout_weight 和 layout_gravity 特性只能当 View 位于 LinearLa
yout 或者 TableLayout 里才能应用。
举个例子,上面的 <TextView> 元素使用 fill_parent 常量填充了父元素的全部宽
度(在这里是屏幕)。它的高度使用 wrap_content 常量,表示它的高度依据内
容的高度(在这里,是其内的文本)。如果确实不想让 <TextView>View 占据整
个行,那么,你也可以设定 layout_width 特性为 wrap_content ,像这样:
1
2
3
4
5
<TextView
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:text ="@string/hello"
/>
这样设置意味著 View 的宽度与其内包含的文本的宽度一样,你还可以设置宽度为一个绝对的值,像这样:
剩余49页未读,继续阅读
资源评论
资料大全
- 粉丝: 14
- 资源: 26万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python 程序语言设计模式思路-创建型模式:原型模式:通过复制现有对象来创建新对象,面向对象编程
- 卸载软件geek卸载软件geek
- Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承
- skywalking-plugins.jar skywalking-alarm.jar
- 独栋别墅图纸D020-两层-10.00&11.00米- 施工图.dwg
- Python 程序语言设计模式思路-创建型模式:工厂模式,创建对象的统一接口,封装对象的创建逻辑
- python自学教程-05-json数据格式的介绍.ev4.rar
- python自学教程-04-自定义JavaScript.ev4.rar
- 《淘宝后台系统...》
- skywalking-plugins.jar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功