android标签activity,android关于<activity>标签中的常用属性和用法简介

Android应用程序中的每一个Activity都需要在AndroidManifest.xml文件中进行配置。我们在标签中经常用到诸如android:name=" ",android:icon=" "此类的标签。但是里面到底能有多少类似的标签呢?下面作为初学者的我小小的总结一下。

1.android:name

这个属性是最常用的,因为在配置Activity时必须要加上它。具体用法android:name="类名".用来说明要声明的Activity的名字。这个类名可以用相对类名,可以包含一部分包名,也可以写上绝对类名。前两种情况下需要在前面加个".",比如你的包名为com.dlut.soft,Activity的名字为Activity1.则写的时候可以android:name=".Activity1",也可以android:name=".dlut.soft.Activity1",当然android:name="com.dlut.soft.Activity1"是第三种情况。

2.android:icon

这个用来设置标题栏中的Activity图标,将图片放到drawable文件夹里。然后就可以引用图标了。android:icon="@drawable/图片名",图片的名字不需要加后缀。

3.android:label

这个用来设置标题栏文本。建议将文本信息放到string.xml中,然后引用。android:label="@string/文本的名字"。这样把字符串都放在一个资源文件里了,就方便管理了。以后应用如果想让老外用,翻出来这个资源文件,巴拉巴拉就给翻译了。(如果没有设置这个属性则默认和标签里的属性相同,android:icon也是这样)。

4.android:screenOrientation

这个用来设置屏幕的方向。它后面跟的值是个枚举类型的,一共有12个不同的情况。并且横竖屏还可以根据java代码进行改变,那么就定义了几个不同的常量来确定到底是哪种情况,这个稍后再说。下面分条概述。

(1)unspecified:这个是默认值,支持的屏幕旋转方向与设备有关。也就是有的设备有三个方向的屏幕,0度、90度、270度(默认为逆时针旋转手机)。还有的设备支持四个方向,0度,90度,180度270度。根据手机里的传感器来确定不同的方向咯。它所对应的常量值为ActivityInfo.SCREEN_ORIENTATION_UNSPECIFED。

(2)user:通常与unspecified效果相同,概过。对应常量值ActivityInfo.SCREEN_ORIENTATION_USER

(3)landscape:永远横屏。90度方向。对应常量ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE.

(4)portrait:永远竖屏。0度方向。对应常量ActivityInfo.SCREEN_ORIENTATION_PORTRAIT.

(5)behind:与Activity当前回退栈的下面那个放下一样。回退栈这个也是比较绕的东西。下一篇文章再解决这个问题。对应常量ActivityInfo.SCREEN_ORIENTATION_BEHIND.

(6)reverseLandscape:永远横屏,270度方向。常量ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE.

(疯掉了,这么多情况)

(7)reversePortrait:竖屏,180度方向。常量什么的我就不写了,显然可以从上面推倒出来。

(8)sensorLandscape:横屏,90度和270度。根据你拿手机的方向。

(9)sensorPortrait:竖屏,0度和180度。参见上一条。

(10)sensor:根据拿手机的方向理论上四个角度随便转,但是有的手机只支持三个方向也没办法。

(11)fullSensor:就算你手机支持三个方向,我也要强制你支持四个。

(12)nosensor:不会转。

写完这个总感觉自己的缩进方式不对啊。是这样吗?

差点忘了那个常量的事。在java代码里写上:setRequestedOrientation(常量)就可以弄到相应的方向咯。

5.android:configChanges

当窗口的状态发生改变了会怎么办呢?比如说,在一个Activity里有个Button,点击一下屏幕由竖屏变成了横屏。那么后台是怎么让它变的呢?比较残忍,调用Activity.onDestory()让它消失,再重新弄一个。当然这是默认状态。如果不想这样,我们就用上面这个属性来改变它。参数很多,我也记不住,所以抄书上的别介意(李宁老师的android开发权威指南,不是打广告哦,表示尊重原著嘛):

mcc(IMSI移动国家代码MCC发生了变化。当SIM卡被检测到并更新MCC时配置变化);

mnc(IMSI移动国家代码MNC发生了变化。当SIM卡被检测到并更新MCC时配置变化);

locale(用户选择的新的文本显示语言时)

touchscreen(换触摸屏了,这个好多android手机不都支持多屏幕嘛)

keyboard(物理键盘类型改变了,比如你插入一个扩展键盘)

keyboardHidden(物理键盘被拔掉了)

navigation(导航硬件类型变了)

screenLayout(屏幕不见发生变化,可能屏幕上多了一个控件等之类的)

fontScale(字体缩放比例变了)

orientation(屏幕方向变了)

screenSize(屏幕尺寸变了)

smallestScreenSize(屏幕物理尺寸变了,比如又接个显示屏)

虽然上面好多我都不太懂吧,但是还是都写上了,以后用上了就不用翻书啦。

这个设置好后,Activity就不destory了。它要调用Activity.onConfigurationChanged(Configuration newConfig)进行处理了,所以我们就可以在这个函数里面控制它了。

6.android:enabled

两个值:true或false。默认true.表示窗口是否能被实例化。一般就是true

7.android:excludeFromRecents

两个值:true或false。默认false。表示程序是否会出现在最近应用这个列表。也就是长按home键出现的那个列表。

8.android:exported

两个值:true或false。默认true。决定其他的Activity是否可以隐式访问这个窗口。关于隐式访问,就是我上篇文章Intent中通过Action之类的字符串访问。

9.android:hardwareAccelerated

两个值:true或false。默认false。硬件加速,就是让你的程序占用更多的内存和CPU加速运行。谨慎使用。

10.android:multiprocess

两个值:true或false。默认false。默认程序在一个进程里执行,变为true后可以再多个进程中。(唉,,正在学操作系统,被多进程的编程搞得心累。)

11.android:noHistory

两个值:true或false。默认false。如果设置为true,Activity就不会被放进回退栈中,虽然还可以显示。具体后果看我的下一篇文章(不知什么时候会写)。

12.android:parentActivityName

值为一个字符串,无默认。主要用于ActionBar。当点击actionBar的回退按钮时,要回退到的地方,就在这写下。

13.android:permission

窗口的权限呐。如果在标签里定义android:permission="This.is.my.permission".那么如果想调用这个窗口,必须在你要调用的那个窗口的标签里写上

14.android:process

属性为字符串。改变窗口所在进程。为Activity指定一个新的进程。

15.android:stateNotNeeded

两个值:true或false。是否保存当前窗口的状态。也就是在重新进入这个窗口时,的状态和退出时一样吗?

16.android:theme

窗口的主题,style资源文件里定义的窗口主题。

17.android:uiOptions

UI主题,两个值:none和splitActionBarNarrow。后者可以自动调整大小。

18.android:windowSoftInputMode

设置输入法显示模式。

stateUnspectified(默认)自动调整

stateUnchanged软键盘无论上次显示还是隐藏,都保持该状态

stateHidden跳转后隐藏键盘

stateAlwaysHidden窗口获得焦点后都会隐藏键盘

stateVisible获得焦点后显示键盘

stateAlwaysVisible获得焦点后都会显示

adjustUnspecified系统自动调整控件和键盘的位置

adjustResize窗口会根据软键盘窗口的大学调整自己位置

adjustPan自动调整控件位置,以便出现键盘后也能看到获得焦点的控件。

终于终于写得差不多了,望对读者和我自己能起到一些作用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值