今天我们来聊一下设备的方向问题。我们主要说的设备方向主要是横向(Landscape)和竖直(Portrait)。设备的方向会影响到很多东西,最主要的就是设备的布局。所以,某些时候你可以能不希望设备方向变了以后布局的方向也跟着改变。
监测方向改变
首先创建一个叫做OrientationActivity
的Activity,作为我们的示例。
有两个方法可以监测到当前设备方向的改变。
一、手动处理屏幕旋转
在AndroidManifest.xml文件里给OrientationActivity
添加一个配置:
<activity
android:name=".D11.OrientationActivity"
android:configChanges="orientation|screenSize|keyboard">
</activity>
android:configChanges - 这个配置是告诉Android系统,我们要自己处理屏幕方向改变,屏幕尺寸改变和键盘的隐藏、显示。
在OrientationActivity
类代码中添加方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG, "onConfigurationChanged " + newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Log.i(