产品经理-Android用户界面设计布局基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android用户界面设计布局基础
想像布局对于好的Android应用设计来说是非常重要的。

在这个
教程里,我们提供更多增加收益一个关于布局如何适应Android应用
程序架构的概述。

我们还探讨了一些特定的可用布局控件,用它们来
以各种各样的方式组织信息内容应用程序屏幕内容。

什么是布局?
Android开发者使用术语“布局”,指的是两种含意中的一种。

两种定义在这篇教程中都会用到,而且很不幸的是在Android开发社区
它们被混着使用。

布局的两种定义如下:
Android用户界面可以定义为XML中的布局资源或程序动态创建。

使用Eclipse设计布局资源
Eclipse的Android开发插件包含了一个很方便的用于设计资源预览布局资源的布局和新设计器。

这个工具包括两个标签网页内容视图:布局视图允许你预览在不同的屏幕下以及对于每一个方向控件会如何
展现;XML配置文件告诉你资源的XML定义。

布局资源设计器如下图:这里有一些关于在Eclipse图形化中使用布局资源编辑器的技巧:
很重要的是要记住一点,Eclipse布局资源编辑器不能完全精确的模拟出布局在那的展现。

对此,你必须在适当配置的模拟器中检测,
更重要的是在目标设备上测试。

而且一些“复杂”控件,包括标签或
视频查看器,也不能在Eclipse中预览。

定义XML布局资源
设计程序用户界面最方便且可维护的方式是创建XML布局资源。

这个访法极大地简化了UI设计过程,将许多用户界面控件的静态产物
和布局,以及控件属性定义移动XML中,代替了写代码。

它适应了UI
设计师(更关心布局)和开发者(了解Java和努力实现应用程序功能)
潜在的区别。

开发者依然可以在必要的时候动态的改变屏幕内容。


杂控件,像ListView或GridView,通常用程序动态地处理数据。

XML布局资源必须存放在项目目录的/res/layout下。

对于每一屏(与某个活动微妙关联)都创建一个XML布局资源是一个通用的做法,但这并没有必须的。

理论上来说,你可以创建一个XML布局资源当中
并在不同的活动中使用它,为屏幕提供更多不同的数据。

如果需要的话,你也可以分散你的含括布局资源并用另外一个文件包含它们。

下面是一个简单的XML布局资源,一个LinearLayout模板包含一
个TextView和一个ImageView,定义在XML中:
在屏幕上显示一个布局资源只需要有包括onCreate()的一行代码就可以搞定。

如果布局资源存放在/res/layout/main.xml文件,代码可能是:
<h3>用程序动态定义布局你也可以用程序创建创建图形界面组件。

为了易组织和可维护性,只在特殊时候这样做,而不算在一般情况下。

不是直接使用setContentView()方法来加载布局资源,你必须文句创
建屏幕内容然后向setContentView()方法提供包含所有要显示的子控
件内容的父布局对象。

<ins><ins>
用程序动态定义布局
例如,下面的代码展示了如何用程序实例化一个LinearLayout快
照并向里面放置两个TextView。

没有选用任何资源。

publicvoidonCreate(BundlesavedInstanceState){
//
TextViewlabel=newTextView(this);
label.setTextSize(20);
ImageViewpic=newImageView(this);
pic.setLayoutParams(newLayoutParams(LayoutParams.WRAP_CONTENT
,LayoutParams.WRAP_CONTENT));
pic.setAdjustViewBounds(true);
pic.setScaleType(ScaleType.FIT_XY);
pic.setMaxHeight(250);
pic.setMaxWidth(250);
LinearLayoutll=newLinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT,L ayoutParams.FILL_PARENT));
ll.addView(label);
ll.addView(pic);
setContentView(ll);
}如你所见,这些代码的大小将随着更多的控制添加到屏幕而迅速增加,使得屏幕内容更加难以维护和重用。

今天让我们把组织转向对注意力其它控件很有用的布局控件。

最常用的布局类是:
探索不同的布局类型
布局(LinearLayout,TableLayout,RelativeLayout等)像其它控件一样也是一个控件。

这意味着布局控件可以被嵌套。

比如,为了组织屏幕上的控件你可以在一个LinearLayout中使用一个
RelativeLayout,反过来也行。

下面的图展示了一个触摸屏,它有一个LinearLayout(父级),一个TableLayout(顶部子节点)以及一个FrameLayout(底部子节点)。

但是小心!保证你的屏幕相对简单,复杂布局加载很慢并且可能引起性能问题。

用复合布局来组织控件
在你设计你的程序仪布局资源时考虑仪器的差异性。

的情况下是
可能设计出在各种不同设备上为看着都不错通常灵活布局的,不管是
竖屏还是模屏模式。

必要的时候,你可以引入可布局资源来处理特殊
情况。

例如,你可以根据设备的方向或设备有超大屏幕(如网络平板)来提供不同的提前布局供加载。

想了解更多的关于如何可选资源的信息,查看AndroidSDK的Android资源方面的文档.
AndroidSDK和能够帮助几个可以帮助我们设计,调试教育资源和优化布局资源的工具。

除了Eclipse的Android插件中内置的布局资源设计器,你可以使用AndroidSDK提供的HierarchyViewer(层次结
构查看器)和layoutopt。

这些工具在你的AndroidSDK的/tools目录
下可以找到。

提供可选布局资源
你可以使用HierarchyViewer来查看布局运行时的详细情况。


以在Android开发者网站的HierarchyViewer部分了解更多内部信息。

你可以使用layoutopt(布局优化)命令行工具来优化你的布局文件。

优化布局非常重要,因为复杂的布局整合文件加载很慢。

layoutopt工具简单地扫描XML布局文件并找出不必要的布点配置文件。

在Android开发者网站的layoutopt部分查看更多重要信息。

布局工具和优化
Android应用程序用户界面使用布局来表述。

有许多不同的布局类型可以用来组织屏幕上的控件。

布局可以使用XML资源定义,也可以
通过Java程序在运转时来定义。

可选布局可以在特殊情况下被切入烧录,比如在横屏和竖屏模式下提供一个可选用户界面。

最后,设计良
好的布局对于性能很重要;使用像HierarchyViewer和layoutopt之
类的AndroidSDK工具来调试和优化工具你的应用程序提前布局。

[English]
总结。

相关文档
最新文档