关闭

关闭

关闭

封号提示

内容

首页 android资源文件类型.doc

android资源文件类型.doc

android资源文件类型.doc

上传者: a564941464 2011-09-19 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《android资源文件类型doc》,可适用于IT/计算机领域,主题内容包含资源是您在代码中使用到的并且在编译时被打包进您的应用程序的附加文件。Android支持多种不同的文件包括XML、PNG和JPEG文件。XML文件的格符等。

资源是您在代码中使用到的并且在编译时被打包进您的应用程序的附加文件。Android支持多种不同的文件包括XML、PNG和JPEG文件。XML文件的格式决定于其描述的内容。这些文件将描述文件支持的类型、语法或格式。处于加载效率的考虑资源被从代码中分离出来而且XML文件被编译进二进制代码中。字符串类似的会被压缩存储为更经济的格式。处于这样或那样的原因Android平台中会存在很多不同的资源和资源定义文件。这些文件包括以下部分:   *资源        o   创建资源        o   使用资源              在代码中使用资源               引用资源              引用主体属性              使用系统属性        o   更改资源        o   资源引用        o   术语表   *国际化(lN)   配合资源引用文档Android提供了一套经济的资源处理技术。他转化了大量的资源信息使Android在运行时无需了解文档的内容仅仅在您需要的时候指导他在哪儿就可以了。资源    这一节包含了与资源有关联的术语表和一系列使用资源的代码事例。更完整的Android资源指南请参看“资源”一章。Android资源系统保存所有与代码无关资源的存根。您可以使用Resources类访问您应用程序的资源与应用程序相关联的资源实例可以通过ContextgetResources()得到。一个应用程序的资源可以被构建系统在构建时编译进二进制的应用程序里。为了使用资源您需要正确的初始化您应用程序中的资源树并且构建您的应用程序。在构建过程的部分每个资源的标识被产生您可以在代码中使用他们。这些标识允许编译器校验您应用程序中的代码和资源定义是否匹配。有关本章的其他细节请参见教程如何使用资源的部分。创建资源    Android支持字符串位图和许多其他类型的资源。每一种资源定义文件的语法和格式及保存的位置取决于其依赖的对象。通常您可以通过三种文件创建资源:XML文件(除位图和原生文件外)位图文件(作为图片)和原生文件(所有其他的类型比如声音文件)。事实上这里有两种不同类型的XML文件一种是作为资源被编译近应用程序另一种怎是资源的描述被aapt使用。下面的表格详细说明了这些XML文件的类型和结构。您可以在您项目res目录下的适当子目录下创建和存储资源文件。Android使用资源编译器访问资源所在的子目录和格式化的文件。下面的表格列出了每一种资源的文件类型。参见“资源引用”一节可以了解关于对象、语法和格式方面的内容。   目录 资源类型 resanim XML文件编译为桢序列动画或者自动动画对象。 resdrawable pngpngjpg文件被编译为Drawable资源子类型:使用ResourcesgetDrawable(id)可以获得资源类型   *位图文件   *patchs(可变位图文件) reslayout 资源编译为屏幕布局器。参见“布局器”一章 resvalues XML文件可以被编译为多种资源注意:不像其他res下的目录这个目录可以包含多个资源描述文件。XML文件元素类型控制着这些资源被R类放置在何处。这些文件可以自定义名称。这里有一些约定俗成的文件。   *arraysxml定义数组。   *colorsxml定义可绘制对象的颜色和字符串的颜色。使用ResourcesgetDrawable()和ResourcesgetColor()都可以获得这些资源。   *dimensxml定义尺度。使用ResourcesgetDimension()可以获得这些资源   *stringsxml定义字符串(使用ResourcesgetString()或者更适合的ResourcesgetText()方法获得这些资源。ResourcesgetText()方法将保留所有用于描述用户界面样式的描述符保持复杂文本的原貌。   *stylesxml定义样式对象 resxml 自定义的XML文件。这些文件将在运行时编译进应用程序并且使用ResourcesgetXML()方法可以在运行时获取。 resraw 自定义的原生资源将被直接拷贝入设备。这些文件将不被压缩近您的应用程序。使用带有ID参数的ResourcesgetRawResource()方法可以获得这些资源比如Rrawsomefilename。  资源被最终编译近APK文件。Android创建包装类R您可以用他找回资源。R包含一些与资源所在目录同名的子类。全局资源   *很多资源都允许您定义颜色。Android接受web风格的颜色定义一组十六进制的颜色值按照以下序列排列:#RGB#ARGB#RRGGBB#AARRGGBB。   *所有的颜色都支持ALPHA通道头两位十六进制数字指定透明度。在ALPHA通道中表示全透明默认值是不透明。使用资源     这一节讲述如何使用您所创建的资源包括:        在代码中使用资源如何在代码中使用资源。        如何引用其他资源中的资源您可以从其他资源中引用资源。您可以重新使用资源内部的通用资源。        支持资源更替您可以在加载时依据语言、显示配置和主机硬件的不同指定不同的资源。在编译时Android生成名为R的类。R包含您应用程序所用到的所有的类。这个类包含一些与res下子目录同名的子类。这些子类包含每一个您在资源文件中定义的资源的标识。这些资源标识可以在您的代码中引用。这里有一段简单的资源文件包含一些文字布局器和图片资源。注意:R类是自动生成的并且它不能被手动修改。当资源发生变动时它会自动修改。packagecomandroidsamplespublicfinalclassR{   publicstaticfinalclassstring{       publicstaticfinalintgreeting=xe       publicstaticfinalintstartbuttontext=x       publicstaticfinalintsubmitbuttontext=x       publicstaticfinalintmainscreentitle=xa   }   publicstaticfinalclasslayout{       publicstaticfinalintstartscreen=x       publicstaticfinalintnewuserpane=x       publicstaticfinalintselectuserlist=x   }   publicstaticfinalclassdrawable{       publicstaticfinalintcompanylogo=x       publicstaticfinalintsmilingcat=x       publicstaticfinalintyellowfadebackground=x       publicstaticfinalintstretchbutton=x   }}在代码中使用资源在代码中使用资源需要知道完整的资源ID和您的资源对象类型。下面是资源引用语法:Rresourcetyperesourcename或者androidRresourcetyperesourcenameresourcetype是R类中保存制定类型资源的子类。resourcename是定义在XML文件中的资源名或者被其他文件类型所定义的资源文件名(无扩展名)每一类型的资源都依据其类型被添加入某一指定的R子类学习R子类的类型关系请参考资源引用一节。您的应用程序引用已被编译的资源时可以不带包名(比如Rresourcetyperesourcename)。Android包含一个标准资源的序号比如屏幕的样式和按钮的背景。引用这些资源您必须使用带android的语法比如androidRdrawablebuttonbackground。下面是一些好的和不好的代码例子:LoadabackgroundforthecurrentscreenfromadrawableresourcethisgetWindow()setBackgroundDrawableResource(Rdrawablemybackgroundimage) WRONGSendingastringresourcereferenceintoamethodthatexpectsastringthisgetWindow()setTitle(Rstringmaintitle) RIGHTNeedtogetthetitlefromtheResourceswrapperthisgetWindow()setTitle(ResourcesgetText(Rstringmaintitle)) LoadacustomlayoutforthecurrentscreensetContentView(Rlayoutmainscreen) SetaslideinanimationforaViewFlipperobjectmFlippersetInAnimation(AnimationUtilsloadAnimation(this,       Ranimhyperspacein)) SetthetextonaTextViewobjectTextViewmsgTextView=(TextView)findViewByID(Ridmsg)msgTextViewsetText(Rstringhellomessage)引用资源一个属性值(或资源)同样可以引用资源。这种用法常在资源布局器文件中用于文字和图片(定义在其他文件中)。这种方法可以引用任何资源包括颜色和整数。比如如果我们有一个颜色资源我们可以写一个布局器文件在其中指定文本颜色和尺寸。   xmlns:android="http:schemasandroidcomapkresandroid"   android:layoutwidth="fillparent"android:layoutheight="fillparent"   android:textColor="coloropaquered"   android:text="Hello,World!">注意“”前缀声明这是一个资源引用随后的文本是以package:typename形式提供的资源名。在这个例子中我们不需要指明特定的包因为我们在我们自己的包中引用。引用一个系统文件时我们需要这样写:   xmlns:android="http:schemasandroidcomapkresandroid"   android:layoutwidth="fillparent"android:layoutheight="fillparent"   android:textColor="android:coloropaquered"   android:text="Hello,World!">在其他的例子中您会经常看到使用资源引用实现本地化。   xmlns:android="http:schemasandroidcomapkresandroid"   android:layoutwidth="fillparent"android:layoutheight="fillparent"   android:textColor="android:coloropaquered"   android:text="stringhelloworld">这种简便的方法可以在资源之间引用。比如我们可以创建一个新的可绘制对象一个真实存在的图片的别名:   android:drawablethemebackground引用主题属性其他种类的资源可以引用当前主题的属性值。这些属性只能是样式资源或XML属性。利用这种方法您可以定制您的UI界面使其与当前主题保持风格上的统一。下面的例子展示了如何使用系统主题设置布局器中的文本颜色:   xmlns:android="http:schemasandroidcomapkresandroid"   android:layoutwidth="fillparent"android:layoutheight="fillparent"   android:textColor="android:textDisabledColor"   android:text="stringhelloworld">注意:引用主题属性的方法和引用资源的方法很相似仅仅是用“?”替代了“”。当您使用这个标记你所提供的资源名必须能够在主题属性中找到因为资源工具认为这个资源属性是被期望得到的您不需要明确的支出他的类型(android:attrandroid:textDisabledColor)。使用系统资源许多包含于系统之中的资源是能被应用程序所访问的。所有的资源被定义在androidR类中。比如您可以使用一下代码在屏幕上显示标准应用程序的ICON:publicclassMyActivityextendsActivity{   publicvoidonStart()   {       requestScreenFeatures(FEATUREBADGEIMAGE)       superonStart()       setBadgeResource(androidRdrawablesymdefappicon)   }}类似的下面的代码会更改您的系统主题:publicclassMyActivityextendsActivity{   publicvoidonStart()   {       superonStart()       setTheme(androidRstyleThemeBlack)   }}为语言和配置提供可更换的资源您可以为您的应用程序选择不同的UI语言和硬件配置。注意尽管您可以使用不同的字符串布局管理器和其他的很多资源SDK不会暴露方法支持您显示的指定何种资源需要被加载。Android识别整套资源的硬件和本地化属性而后适当的加载他们。用户可以在设备的设置面板中更换语言设置。为了包含可更换资源创建平行的资源目录以限定的方式命名这些目录配置文件也同样适用(语言、屏幕等)。下面的例子给出同时支持英语和法语的方法:MyApp   res       valuesen           stringsxml       valuesfr           stringsxmlAndroid支持多种命名限定和多样的值风格。添加这些信息到资源目录末尾使用连接号分离。您可以为单个目录添加多段限定。但是他们需要保持一定顺序以方便阅读和理解。下面的例子就是一个带有限定的可绘制对象资源目录的全名:MyApp   res       drawableenrUSportdpifingerkeysexposedqwertydpadx更具代表性的您可能需要指定一些资源配置参数。您也许需要除去完整列表中的一些值但是还有很多很多值被保留在列表中:MyApp   res       drawableenrUSfinger       drawableport       drawableportdpi       drawableqwerty   限定词 值 语言 两字节ISO低位的语言编码比如:en,fr,es 区域 两字节ISOalpha带有小写"r"前缀的大写地区编码。如:rUS,rFR,rES 屏幕方向 port,land,square 屏幕像素密度 dpi,dpi,etc 触摸屏类型 notouch,stylus,finger 用户是否可以使用键盘 keysexposed,keyshidden 默认的文字输入方法 nokeys,qwerty,key 默认的非触摸导航方法 notouch,dpad,trackball,wheel 屏幕尺寸 x,x,etc较大的尺寸必须首先声明。  次列表不包括设备定制的参数比如信号、商标等。所有应用程序应该知道的信息都需要按照上面的列表信息编码。这里有一些命名的通用原则:        值之间用连接号连接        值是大小写敏感的比如o   一个指定的drawable目录必须命名为drawableport而不是drawablePORT。        每种限定词只能有一种选择您不能命名目录为drawablerENrFR。        您可以添加多种限定词但是每个限定词必须在在上面列表中。比如drawableenrUSland表明其用于直板的美式英语设别上。       带有限定词的目录不能被嵌套比如resdrawabledrawableen是不允许的。       资源引用在语法中表示为未加修饰的表达式比如MyAppresdrawableportdpmyimagepng在XML中表示为:drawablemyimage在代码中表示为:Rdrawablemyimage。Android如何找到最匹配的目录Android将根据配置文件挑选资源挑选过程为:.排除所有和配置文件中指定的当前设备参数不匹配的资源。比如如果屏幕像素密度为dpi下面所列出的目录中只有MyAppresdrawableportdpi会被排除。MyAppresdrawablemyimagepngMyAppresdrawableenmyimagepngMyAppresdrawableportmyimagepngMyAppresdrawableportdpimyimagepng .接下来系统将根据限定字的多少来筛选。例如如果您的本地系统识别为enGB编码的便携设备随后我们还剩两个目录可以匹配。MyAppresdrawablemyimagepngMyAppresdrawableenmyimagepngMyAppresdrawableportmyimagepng .选择机制将根据配置文件中定义的优先级优先级定义于上面的列表顺序中。MyAppresdrawableenmyimagepngMyAppresdrawableportmyimagepng

热点搜索换一换

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/11
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部