綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[資料] 解決Android手機 屏幕橫豎屏切換

[複製連結] 查看: 1552|回覆: 3|好評: 1
跳轉到指定樓層
樓主
暗桌之光 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-7-8 16:09

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
Android中當屏幕橫豎屏切換時,Activity的生命週期是重新加載(說明當前的Activity給銷毀了,但又重新執行加載),怎麼使屏幕橫豎屏切換時,當前的Activity不銷毀呢?
1. 在AndroidManifest.xml中為Activity設置configChanges屬性,
  1. application android:icon="@drawable/icon" android:label="@string/app_name">
  2.         <activity android:name=".MainActivity"
  3.             android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">
  4.             <intent-filter>
  5.                 <action android:name="android.intent.action.MAIN" />
  6.                 <category android:name="android.intent.category.LAUNCHER" />
  7.             </intent-filter>
  8.         </activity>
  9.     </application>
複製代碼
configChanges有如下選項:  
1. orientation :屏幕在縱向和橫向間旋轉,  
2. keyboardHidden:鍵盤顯示或隱藏 ,
3.fontScale:用戶變更了首選的字體大小   
4.locale : 用戶選擇了不同的語言設定,
5.  keyboard :鍵盤類型變更,例如手機從12鍵盤切換到全鍵盤   
6. touchscreen或navigation:鍵盤或導航方式變化,
如果缺少了keyboardHidden選項 不能防止Activity的銷毀,並且在之後提到的onConfigurationChanged事件中 只能捕獲豎屏變橫屏的事件 不能捕獲橫屏變豎屏
2. 在對應的Activity中重寫:onConfigurationChanged 方法:
  1. public class MainActivity extends Activity {
  2.     private TextView textView;
  3.     @Override
  4.     public void onCreate(Bundle savedInstanceState) {
  5.         super.onCreate(savedInstanceState);
  6.         setContentView(R.layout.main);

  7.         Log.i("--Main--", "onCreate");
  8.         textView
  9.         Log.i("--Main--", "onConfigurationChanged");

  10.         if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
  11.             textView.setText("當前屏幕為橫屏");
  12.         }else{
  13.             textView.setText("當前屏幕為豎屏");
  14.         }
  15.     }
  16.    
  17. }
  18. =(TextView)findViewById(R.id.tv_id);
  19.     }
  20.    
  21.    
  22.     @Override
  23.     public void onConfigurationChanged(Configuration newConfig) {
  24.         super.onConfigurationChanged(newConfig);
複製代碼
佈局文件就是一個簡單的TextView此處不給出,
效果如下:
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
沙發
ass001 | 收聽TA | 只看該作者
發表於 2011-7-9 12:44
學習了 謝謝啦
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
guoty | 收聽TA | 只看該作者
發表於 2011-7-18 17:22
受教了,謝謝!!!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
Q9Q9Q9Q9Q9 | 收聽TA | 只看該作者
發表於 2011-7-22 10:27
感謝大大分享
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則