横竖屏切换【Android】

一、我们发现在进行横竖屏切换时,你原本屏幕的activity的数据会消失,这是怎么回事呢???通过日志文件的打印,我们发现当你进行屏幕切换的时候会将当前的activity销毁,并重新建立,因此上面的内容会消失,那么怎么解决这一办法呢??

在功能清单文件中的本activity中加上下面一句代码

android:configChanges="orientation|keyboardHidden|screenSize"

二、那么为什么加上上面那句话后,就不会对activity进行销毁了呢???这是因为在横竖屏切换时会调用,下面我们来验证一下

@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		int orinentation = newConfig.orientation;
		if (orinentation == Configuration.ORIENTATION_LANDSCAPE) {//横屏时
			Toast.makeText(this, "横屏", 0).show();
		} else if (orinentation == Configuration.ORIENTATION_PORTRAIT) {//竖屏时
			Toast.makeText(this, "竖屏", 0).show();
		}
	}

三、如何只让横屏或者竖屏

在日志清单文件中的本activity中

android:screenOrientation="landscape"//横屏
android:screenOrientation="portrait"//竖屏

四、点击按钮进行横竖屏切换
public void changeOrientation(View view) {//Button的点击事件
	int orientation = getResources().getConfiguration().orientation;//得到当前的屏幕方向
	if (orientation == Configuration.ORIENTATION_LANDSCAPE) {//如果是横屏
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//切换成竖屏
	} else if (orientation == Configuration.ORIENTATION_PORTRAIT) {//如果是竖屏
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//切换成横屏
	}
}

你可能感兴趣的:(android)