UI的构造和资源的使用.doc_第1页
UI的构造和资源的使用.doc_第2页
UI的构造和资源的使用.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

由麦可网整理,转载请注明出处UI的构造和资源的使用前言到现在为止我们已经学习了三个Android程序: Hello, Call,Sms 的。对于android的程序有了基本的感性的认识。今天开始回顾和讲解Activity,目的就是消除前几次课程的疑问的地方?主要内容如下:(1)界面构造Activity只是一个UI的容器,对于Android来说,Android的UI框架最核心的,是资源和Layout体系,Android提供了大量的的UI控件,是的我们可以构建自己的用户界面!UI控件做UI,有时候就像搭积木,在Android中,这个最原子的积木块,就是View。所有其他的UI元素,都是派生于此类的子孙类们。SDK中图,用来描述Android的UI控件结构在每一个window(Activity下的一个抽象类)下,这都是一个标准而完整的View树结构。View有一个子类ViewGroup,它相当于一个容器类或者是复合控件,所有派生与ViewGroup的子类在这颗UI树中都可以承担着父节点的职责,而另一些绕过ViewGroup从View直通下来的,就只能蜷局在叶节点的范畴内了。每个控件如何标识,如何设定大小和位置,其如何接受和处理事件,如何在程序中得到控件?标识在Android中,我们可以为每个控件选择设定一个id,这个id的全局的唯一性不需要保证,但在某个局部的范围内(就是在一个Layout内唯一就可以了)具有可识别性,这样就可以通过这个id找到这个控件。尺寸,大小和位置在Android中,控件最重要的大小属性,就是width/height,开发者可以明确的指明控件的大小,可以设定成为fill_parent和wrap_content,事件Android的事件处理逻辑,采用的是观察者模式。Android的控件提供了一些列的add/set Listener的接口,使得外部观察者,有机会处理控件事件。比如,你需要在某个button被点击时做一些事情,你就需要派生一个View.OnClickListener对象作为观察者,调用该控件的setOnClickListener接口注册进去,当button被点击,就可以获得处理点击事件的机会了。上面是Java机制的事件基本的原理。但是在android的framework中,已经可以简化了这个过程如下:哈哈,是不是很简单,所以我们这才是在Framework下开发呢! LayoutLayout是一类特殊的ViewGroup控件,它们本身没有任何可显示内容,形如透明的玻璃盒子,存活的唯一理由,就是其中的内部结构,能够更好的摆放它的子控件们。比如线性的Layout,LinearLayout。放入这个Layout的子控件,会按水平或垂直方向,排排坐,一个挨着一个按顺序排列下去。TableLayout,可以将子控件按照表格的形式,一枚枚放置好。而RelativeLayout则更灵活,可以设定各个控件之间的对齐和排列关系,适合定制复杂的界面。有了Layout的存在,控件和控件之间不再割裂的存在,而是更有机的结合在了一起,设定起来也更为方便。基本的Layout如下:线性布局(LinearLayout):线性布局,按照垂直或者水平方向布局组件。 重点帧布局(FrameLayout):组件从屏幕的左上角坐标布局组件。表格布局(TableLayout):按照行列方式布局组件。 重点相对布局(RelativeLayout):相对其它组件的布局方式。重点绝对布局(AbsoluteLayout):按照绝对坐标来布局。这个可以就当做没有!(2)资源文件主要是R.java的这个资源的索引文件使用按 和res文件下的各类具体的资源描述概述。 结构和格式Android的资源文件,是由目录结构,Xml格式的文件,和纯数据文件构成。XML没学习过,都没有关系,老师给我们上了两天的XML的课程,把Android中用到的XML的技术和知识都介绍了!Android的资源文件,覆盖面超级广,只要是和界面相关的,都可以用资源文件表示,比如:UI的样式,菜单,配置文件,各种描述性字符串,图片,音频视频文件,动画,颜色,尺寸,风格和样式,等等等。所有的资源文件都放在res目录下,不同类别的资源,需要放置在不同的特定名称的子文件夹中,或者是写在特定文件名的文件中UI背景之类的图片,都需要扔在drawable这类的文件夹中所有字符串相关的,都会放到values目录下形如strings.xml这样的文件中(如下图所示,是一个资源文件目录结构的截图.)。可配置性(A)国际化:values是默认的字符串文件夹。如果你想国家化,使你的程序支持中文简体,那么表示简体中文字符信息的资源,可以放到values-zh-rCN中去,当系统语言环境为简体中文时,就会呈现出中文的字符信息!有点java语言的国际化的味道!(B)界面的状态变化有这样类似的需求,一个按钮,我们需要没有按下去的时候是一种背景,再次按下优势另外一种背景,就在在两个背景切换。这个功能可以通过配置文件完成! 哈哈。下次课程就会写这个例子! 先不要着急!R类在使用资源后,界面逻辑与底层逻辑的耦合被降低了,但这不意味着,两者没有关联了。比如,需要为某个按钮增加一个点击事件,就需要定位到所需的那个按钮;再比如,你需要使用某个字符串资源,就需要能定位到资源中放置的该字串。在Android中,引入了一个R类。R.java 下面是SDK的官方解释: 它的基本思想是,通过增加一个额外的编译器,为所有的资源项,都赋予一个32位的整形数来表示,同一个资源像的不同配置,都使用同一个id。这个整形数,就相当于这个资源项的门牌号码,能够帮助定位到对应的资源项。所有的这些整形数,都以常量的方式,整合到一个Java类中,这个类就是R类。这样,在程序中,就可以通过使用这个R类,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论