Android屏幕旋转处理,保持Activity内容
2014-07-18 10:34
316 查看
1.修改AndroidManifest.xml 在activity属性中加入:
android:configChanges=”orientation|keyboardHidden|screenSize" //3.2以上必须加此属性,不然还是会调用onCreate()。
android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。
orientation:屏幕界面旋转(可能是用户手动旋转的)。
screenSize:如果你的开发API等级等于或高于13,你还需要设置screenSize,因为screenSize会在屏幕旋转时改变。
keyboardHidden:键盘辅助功能改变。
AndroidManifest.xml代码:
2.在应用中固定屏幕方向。
在AndroidManifest.xml的activity中加入:android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
3.在相对应的Activity中继承重写onConfigurationChanged方法,可判断当前屏幕朝向,监听屏幕变化以此做出响应。
4.用onRetainCustomNonConfigurationInstance()方法来暂时保存数据。
然后在对应的地方使用getLastCustomNonConfigurationInstance()获取数据。
5.判断横竖屏
可以在onCreate()里判断横竖屏加载相应的XML视图文件
android:configChanges=”orientation|keyboardHidden|screenSize" //3.2以上必须加此属性,不然还是会调用onCreate()。
android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。
orientation:屏幕界面旋转(可能是用户手动旋转的)。
screenSize:如果你的开发API等级等于或高于13,你还需要设置screenSize,因为screenSize会在屏幕旋转时改变。
keyboardHidden:键盘辅助功能改变。
AndroidManifest.xml代码:
<span style="font-family:Microsoft YaHei;font-size:12px;"><activity android:name="com.Lee.eq.MainActivity" android:configChanges="orientation|keyboardHidden|screenSize" > </activity></span>
2.在应用中固定屏幕方向。
在AndroidManifest.xml的activity中加入:android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
3.在相对应的Activity中继承重写onConfigurationChanged方法,可判断当前屏幕朝向,监听屏幕变化以此做出响应。
@Override public void onConfigurationChanged(Configuration newConfig) { // 切换到了横屏 if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { } else { } super.onConfigurationChanged(newConfig); }
4.用onRetainCustomNonConfigurationInstance()方法来暂时保存数据。
@Override public Object onRetainCustomNonConfigurationInstance() { // TODO Auto-generated method stub String kdInfoString = textViewRender.getText().toString(); return kdInfoString; }
然后在对应的地方使用getLastCustomNonConfigurationInstance()获取数据。
textViewRender.setText((CharSequence) getLastCustomNonConfigurationInstance());
5.判断横竖屏
可以在onCreate()里判断横竖屏加载相应的XML视图文件
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { // 横屏 setContentView(R.layout.activity_main_land); } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { // 竖屏 setContentView(R.layout.activity_main); } }
相关文章推荐
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容 转
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android屏幕旋转 处理Activity与AsyncTask的最佳解决方案
- Android 禁止屏幕旋转 和 旋转屏幕时保持Activity
- Android 旋转屏幕--处理Activity与AsyncTask的最佳解决方案
- Android屏幕旋转时Activity的生命周期
- android旋转屏幕不新建Activity
- Android开发实践:屏幕旋转的处理
- Android菜鸟笔记-旋转屏幕时,Activity的生命周期
- Android开发实践:屏幕旋转的处理
- android屏幕旋转时,Activity不重新调用onCreate的方法
- Android 旋转屏幕时禁止Activity重建
- Android禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android屏幕旋转时Activity的生命周期
- Android开发实践:屏幕旋转的处理