activity横竖屏切换梳理

来源:互联网 发布:解压缩软件美化版 编辑:程序博客网 时间:2024/04/27 14:58


前言:已经是2016年年尾了,工作依然感觉不是很满意,只能提升实力,然后去选择更好的工作机会了~

开始之前,我们需要新建一个项目,主代码如下:

import android.app.Activity;import android.os.Bundle;import android.util.Log;/** * activity的横竖屏切换 *  * @author spf */public class MainActivity extends Activity {    private String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.i(TAG, "onCreate--->");    }    @Override    protected void onStart() {        super.onStart();        Log.i(TAG, "onStart--->");    }    @Override    protected void onRestart() {        super.onRestart();        Log.i(TAG, "onRestart--->");    }    @Override    protected void onResume() {        super.onResume();        Log.i(TAG, "onResume--->");    }    @Override    protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        Log.i(TAG, "onSaveInstanceState--->");    }    @Override    protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);        Log.i(TAG, "onRestoreInstanceState--->");    }    @Override    protected void onPause() {        super.onPause();        Log.i(TAG, "onPause--->");    }    @Override    protected void onStop() {        super.onStop();        Log.i(TAG, "onStop--->");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.i(TAG, "onDestroy--->");    }}

运行代码,打印日志如下:
这里写图片描述

单击物理返回键打印日志如下:
这里写图片描述

如果点击手机home键将应用置于后台,打印日志如下:
这里写图片描述

接着点击应用再次回到应用,日志如下:
这里写图片描述

切换为横屏,日志如下:
这里写图片描述

接着切换为竖屏,日志如下:
这里写图片描述

在配置文件如此配置:

<activity        android:name=".MainActivity"        android:label="@string/app_name"         android:configChanges="keyboardHidden|orientation|screenSize"            >     <intent-filter>           <action android:name="android.intent.action.MAIN" />           <category android:name="android.intent.category.LAUNCHER" />     </intent-filter></activity>

横竖屏切换,则不再打印日志了。
另外,我们可以监听横竖屏切换的状态,核心代码如下:

@Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);    Log.d(TAG, newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ? "屏幕设置为:横屏" : "屏幕设置为:竖屏");    }

日志如下:
这里写图片描述

拓展阅读:http://www.cnblogs.com/xiaoQLu/p/3324503.html

0 0
原创粉丝点击