Android屏幕切换
来源:互联网 发布:兼职淘宝模特怎么入行 编辑:程序博客网 时间:2024/05/03 23:39
Android模拟器中,快捷键"Ctrl+F11/F12"可以实现转屏一个很简单的Activity如下:package cn.sohu.com;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class TestActivityActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { Log.i("TAG", "onCreate()方法被调用"); super.onCreate(savedInstanceState); setContentView(R.layout.main); }@Overrideprotected void onStart() {Log.i("TAG", "onStart()方法被调用");super.onStart();}@Overrideprotected void onRestart() {Log.i("TAG", "onRestart()方法被调用");super.onRestart();}@Overrideprotected void onResume() {Log.i("TAG", "onResume()方法被调用");super.onResume();}@Overrideprotected void onSaveInstanceState(Bundle outState) {Log.i("TAG", "onSaveInstanceState()方法被调用");super.onSaveInstanceState(outState);}@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {Log.i("TAG", "onRestoreInstanceState()方法被调用");super.onRestoreInstanceState(savedInstanceState);}@Overrideprotected void onPause() {Log.i("TAG", "onPause()方法被调用");super.onPause();}@Overrideprotected void onStop() {Log.i("TAG", "onStop()方法被调用");super.onStop();}@Overrideprotected void onDestroy() {Log.i("TAG", "onDestroy()方法被调用");super.onDestroy();} }
在我们进行切换屏幕的时候,依次调用了如下的方法:
05-10 12:01:16.831: I/TAG(304): onSaveInstanceState()方法被调用
05-10 12:01:16.831: I/TAG(304): onPause()方法被调用
05-10 12:01:16.831: I/TAG(304): onStop()方法被调用
05-10 12:01:16.831: I/TAG(304): onDestroy()方法被调用
05-10 12:01:16.850: I/TAG(304): onCreate()方法被调用
05-10 12:01:16.931: I/TAG(304): onStart()方法被调用
05-10 12:01:16.931: I/TAG(304): onRestoreInstanceState()方法被调用
05-10 12:01:16.931: I/TAG(304): onResume()方法被调用
由此可见:Activity在屏幕切换时先保护现场然后被摧毁,切换后重建此时恢复现场
现在我们要求,在横竖屏幕切换的时候,不销毁和重建Activity
第一步: 在AndroidManifest.xml中的<activity/>添加属性 android:configChanges="orientation|keyboardHidden"
第二步: 重写activity的生命周期方法 onConfigurationChanged(Configuration newConfig)即:
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
textView.setText("现在为横屏幕");
}else{
textView.setText("现在为竖屏幕");
}
}
这样即可达到目的.同理我们可以在此方法中为屏幕的不同方向设置不同的布局文件!!!!!!!!!
即:在res目录下建立layout-land和layout-port目录,相应的layout文件不变且把main.xml复制到这两个目录下面.
layout-land是横屏的layout,layout-port是竖屏的layout
- android-横向屏幕切换
- android ViewFlipper屏幕切换
- Android屏幕切换
- android ViewFlipper屏幕切换
- Android屏幕切换
- Android横竖屏幕切换
- Android屏幕切换处理
- android切换屏幕
- Android 横竖屏幕切换
- 【Android】屏幕切换总结
- android屏幕切换动画
- android屏幕切换
- Android--切换屏幕方向
- Android屏幕切换
- android 屏幕切换监听
- Android 横竖屏幕切换
- android 横竖屏幕切换
- Android图片切换和屏幕切换
- Get和Post
- Http发送XML
- ListView绑定数据的两种方法
- 迷失
- 程序的启动和退出以及activity和window和视图树的关系
- Android屏幕切换
- RadioGroup和CheckBox使用示例
- Android利用StatFs查看SDCard物理信息
- 十秒钟更新完ProgressBar
- IO重要理解及笔记
- UVa 136 - Ugly Numbers
- 利用SoftReference实现图片异步加载
- Android开关控件ToggleButton
- WindowFeature(窗口样式)笔记