资源文件及使用

资源文件及使用

1、R.java文件appt工具根据应用程序的资源文件来自动生成,生成规则为:每类资源对应R类的一个内部类,如:界面布局资源对应layout内部来,字符串资源对应string内部类,标示符资源对应id内部类;每个具体资源项对应内部类的一个public static final int 类型的成员变量。

2、Activity、Service、contentProvider必须在Manifest文件中注册,BroadcastReceiver可在代码中动态注册

3、XmlnsxmlNameSpace,xml 命名空间),tools:context="activity name"这一句不会被打包进APK。只是ADT的Layout Editor在你当前的Layout文件里面设置对应的渲染上下文,说明你当前的Layout所在的渲染上下文是activity name对应的那个activity

4、Manifest文件

1<uses-sdk>通过minSdkVersion、targetSdkVersion、maxSdkVersion三个属性对应用安装兼容性方面进行控制。 

minSdkVersion该属性的作用主要体现在两个阶段,一个是在应用安装时,一个是在项目构建时。 当安装应用的手机系统API level 小于 minSdkVersion的值时,将不能安装该应用。在构建时,在程序中如果我们用到了高于minSdkVersion的值的API接口,Eclipse会自动报错提醒开发者。

maxSdkVersion 标明可以运行你的应用的最高API Level版本。现在Google官方文档中已经建议不推荐使用这个属性了。

targetSdkVersion值,如果系统的API level 和当前应用的targetSdkVersion一样,系统将不会启用兼容模式运行该应用,如果不设置其默认值将等于minSdkVersion的值。如果平台的API Level低于你的应用程序中的targetSdkVersion属性指定的值时, 系统会开启兼容行为来确保你的应用程序能正常运行。一般情况下,应该将这个属性的值设置为最新的API level 值

注意: project.properties中的target是指在编译的时候使用哪个版本的API进行编译。它和工程下导入的api包的API Level保持一致的。如果你更改target的值,上面的api包会跟着变化,你更改api包时target的值也会变化。

(2) <uses-feature/>  Android Market会根据uses-feature过滤所有你设备不支持的应用。通过使用<uses-feature>元素,一个应用可以指定它所支持的硬件型号,举个例子,有些设备不支持多点触控或者OpenGL ES 2.0,那么过滤器就会过滤需要这些硬件支持(多点触控或者OpenGL ES 2.0)的应用,用户就不会在android market上看到这些应用。

一个<uses-feature>元素包含以下属性:
<uses-feature android:name="string", android:required=["true" | "false"] android:glEsVersion="integer" />

name属性指定了应用的特征,required属性告诉过滤器我们是否在任何情况下必须要需要这个设备的支持,或者仅仅只是“nice to have”。最后一个属性是可选择的,只是用在需要指定一个OpenGL ES版本的时候。

3<supports-screens>这个元素用于指定应用程序所支持的屏幕尺寸,并针对比应用程序所支持的屏幕还要大屏幕,启用屏幕兼容模式。

4)<uses-permission> 权限说明

5<application>能够包含的标签:<activity> <activity-alias>、<service>、<receiver>、<provider>、<uses-library>

(6.1)<activity> android:configChanges标检测指定设备属性是否发生变化,如横竖屏的切换、键盘的可用性等,若不设置该属性,当某些设备属性发生变化时activity会销毁重建,但如果设置了该标签,则activity不会重建而是调用onConfigurationChange()函数。可以设置多个属性,中间用|隔开。

“keyboard" 键盘发生了改变----例如用户用了外部的键盘 

"keyboardHidden" 键盘的可用性发生了改变 
"navigation" 导航发生了变化-----通常也不会发生 
"screenLayout" 屏幕的显示发生了变化------不同的显示被激活 
"fontScale" 字体比例发生了变化----选择了不同的全局字体 
"uiMode" 用户的模式发生了变化 
"orientation" 屏幕方向改变了 
"screenSize" 屏幕大小改变了 
"smallestScreenSize" 屏幕的物理大小改变了,如:连接到一个外部的屏幕上

(6.2)android:screenOrientation="landscape"是限制此页面横屏显示,  

   android:screenOrientation="portrait"是限制此页面数竖屏显示。

(6.3)android:windowSoftInputMode   activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题。

这个属性能影响两件事情:

1、当有焦点产生时,软键盘是隐藏还是显示(state....)

2、是否减少活动主窗口大小以便腾出空间放软键盘(adjust...)

各值的含义:

stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

stateHidden:用户选择activity时,软键盘总是被隐藏,(直到当该Activity主窗口获取焦点时)

stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

stateVisible:软键盘通常是可见的

stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值