作者sorrel20567 (嗨)
看板AndroidDev
標題[問題] 隨著直放橫放即時改變配置xml
時間Wed Oct 19 01:15:12 2011
對不起我問題有點多...(一次發兩篇)
想請問一下有沒有大大有寫過類似的程式
因為手機很靈敏,擺直的擺橫的會顯示同一個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
推 LaPass:從直的變橫的會呼叫onResume()你可以在那邊setContentView 10/19 08:04
→ sorrel20567:請問onResume時要再自己判斷它是直是橫嗎? 10/19 14:23
推 LaPass:對 10/19 14:58
→ azxswq000:android:screenOrientation="sensor" 然後再去判斷橫直 10/19 17:02
→ azxswq000:來設定不同的layout 10/19 17:03
→ kunyu1976:可以去developer.android.com查Providing Resources 10/19 18:10