[問題] 隨著直放橫放即時改變配置xml

看板AndroidDev作者 (嗨)時間13年前 (2011/10/19 01:15), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/2 (看更多)
對不起我問題有點多...(一次發兩篇) 想請問一下有沒有大大有寫過類似的程式 因為手機很靈敏,擺直的擺橫的會顯示同一個layout的樣式 但太複雜的外觀沒辦法做到一種layout直的橫的都很好看 於是我決定寫兩個(一個for直,一個for橫) 小弟我有參考android範例大全5-22的方法再改寫 我設一個timer,createActivity後timer每0.1秒會call 這個函式 @Override public int getRequestedOrientation() { /* 此覆寫getRequestedOrientation方法,可取得當下螢幕的方向 */ return super.getRequestedOrientation(); } 取得當前銀幕的直橫方向 再把直或橫的值傳給 @Override public void setRequestedOrientation(int requestedOrientation) { switch(requestedOrientation) { case (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE): setContentView(R.layout.land); break; case (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT): setContentView(R.layout.port); break; } super.setRequestedOrientation(requestedOrientation); } 這函式 估計它會自動切換xml檔達成效果 但事情沒我想的那麼簡單.... 用timer除了讓程式很lag之外(可能手機比較舊) 也沒達成我想要切直切橫的目的... 程式而是一直會顯示一開始onCreate裡設的那個layout 不會再有改變 但是只要手機一轉方向,layout雖然不變 但整個擺設還是會變得很醜 是不是一定要改寫底層才有辦法達到我想要的效果 下下策就是固定程式直向橫向了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.158.190

10/19 08:04, , 1F
從直的變橫的會呼叫onResume()你可以在那邊setContentView
10/19 08:04, 1F

10/19 14:23, , 2F
請問onResume時要再自己判斷它是直是橫嗎?
10/19 14:23, 2F

10/19 14:58, , 3F
10/19 14:58, 3F

10/19 17:02, , 4F
android:screenOrientation="sensor" 然後再去判斷橫直
10/19 17:02, 4F

10/19 17:03, , 5F
來設定不同的layout
10/19 17:03, 5F

10/19 18:10, , 6F
可以去developer.android.com查Providing Resources
10/19 18:10, 6F
文章代碼(AID): #1EdRGYML (AndroidDev)
文章代碼(AID): #1EdRGYML (AndroidDev)