android中有很多未知的“路”,只有走好每一步,才有可能找到捷径!!!


1.获取屏幕大小

还有一种方法,可以获取屏幕大小(像素),如下:

2.改变屏幕方向


android手机在改变屏幕方向(横屏与竖屏互相切换)的时候,会多次调用onCreate()方法,以及onPause()onStop()onDestroy()方法,然后重新调用onCreate()onStart()onResume()方法使该activity重新展现在我们面前。

利用这种特性可以实现某些特殊的效果,但是在大多数情况下,我们还是想让它只调用一次onCreate()方法。因为onCreate()方法一般用来做一些初始化的工作,毕竟没有多少人希望初始化工作会一次又一次的进行着。特别是你的app有多个activity,如果在改变屏幕方向(横屏与竖屏互相切换)的时候onCreate()方法总是在调用,那么这可能就是一场噩梦!!下面介绍改变这中现状的方法。主要两个步骤!!

<1> 修改manifest.xml文件

添加如下代码,即可

完整示例如下:

这样,切换屏幕时就不会多次调用onCreate()方法,从而不会影响activity生命周期。那么,既然不会多次调用onCreate()方法,系统又是调用哪个方法呢?接着看.....

<2>覆写ActivityonConfigurationChanged()方法

如果你想在屏幕方向改变时,做一些操作必须覆写onConfigurationChanged()方法。在该方法中我们可以添加自己的代码,主要有两中写法,如下:

或者:

这两种方式,打印结果:

但是这是在模拟器上面测试的结果,在真机上测试结果不一样。

还有一点需要注意:super.onConfigurationChanged(newConfig);必须写,否则报异常!
异常信息:

说明要调用父类ActivityonConfigurationChanged()方法。看一下ActivityonConfigurationChanged()方法源码

可以看出,调用了抽象类WindowonConfigurationChanged()方法。看源码如下:

3.固定屏幕方向


从上面我们知道,当改变设备或者模拟器的屏幕方向时,相应的显示模式也将根据变化匹配现有的情况,这样,Activity

根据不同的模式(PortraitLandscape)重新调整视图的显示方式。如果你想让你的视图一直处于某一个固定方向,可以

Manifest里为相应的Activity添加Android:screenOrientation属性,并赋予”portrait”或”Landscape”属性。

4.Camera有关


使用过android的照相机的api的朋友知道,如果不做处理,画面是不会随着手机的方向变化而变化。

其实改变这种现状也很简单,一句代码的事:

记住:这种方法不会禁止应用程序多次调用onCreate()方法,所以你需要按照上面的方法去禁止这种现象发生,如果你需要的话。

对应的getRequestedOrientation( )方法返回屏幕方向的数据如果没有指定屏幕方向的话调用getRequestedOrientation( )

方法会返回-1SCREEN_ORIENTATION_UNSPECIFIED表示没有指定。

如果你在manifest.xml或者代码中使用setRequestedOrientation()方法设置了屏幕方向的话,会返回对应数据。

具体参数可以查看ActivityInfo类的常量。

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. sqlit导入外部数据库查找数据方法
  5. android下usb框架系列文章---(3)Storage框架整理
  6. Android(安卓)NDK打印log到logcat的方法
  7. androidの自定义加载对话框ProgressDialog
  8. Android(安卓)图片拖动和缩放
  9. Android(安卓)获取设备各种信息以及其它

随机推荐

  1. Android(安卓)内存泄漏调试
  2. Android(安卓)UI框架 Android(安卓)UI控
  3. JavaScript 与 Android(安卓)交互
  4. Google确认下一个Android版本将不会使用O
  5. Android(安卓)WebView的坑总结
  6. Android帮助文档翻译——开发指南 获取用
  7. 安卓应用实用功能的技术实现:《Android消
  8. Android分享笔记(6) Android(安卓)自定义
  9. 由安装Busybox到Android过程中想到的
  10. android画图