有些車架電源接口朝左,有些朝右,
又因為Navier HUD是強制將畫面設定為Landscape
(android:screenOrientation ="landscape")
這時如果車架電源接口是朝左的話,
Navier HUD畫面會變成上下相反,
解決這個問題的方法,本來很單純,
就是把畫面設定改成 android:screenOrientation ="sensorLandscape" 就行了
問題是,sensorLandscape參數只支援Android2.3以上的版本,
2.3以下的版本會變成沒有將畫面鎖為橫向!
所以...我該為了這個參數放棄使用Android2.3以前版本的使用者嗎?
不,我一個使用者都不想放棄!
觀察Navier HUD的使用者版本分布,
仍有接近八分之一的使用者是Android2.3以前的版本
所以只好另外想辦法!
既然沒辦法在Manifest檔中使用參數,
那就直接在Activity的onResume()時,檢查手機的手持方向,
然後hardcode轉換顯示方向
public static void checkLanscapeOrientation(Activity context){
Display display = ((WindowManager) context.getSystemService(context.WINDOW_SERVICE)).getDefaultDisplay();
int orientation = display.getRotation();
try{
if(orientation==Surface.ROTATION_270)
{
context.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
}else{
context.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}catch(Exception e){
}
}
將上述方法放置於onResume()當中,來改編顯示方向
本以為應該沒有問題了!
無奈又碰上ViewFlipper 元件的Bug
當Activity當中有使用ViewFlipper時,做Orientation改變時,
可能會使App FC!
這個錯誤由Android2.1~ Android 4.0都還有,
Android 4.1似乎解決了,因為我手機刷了Android 4.1並且沒碰到這個問題,
所以我一直沒發現有問題,直到許多人在評論上提到,
我才知道ˊˋ
目前只好再把Orientation設回landscape,
對那些車架電源接口是朝左的使用者說聲抱歉@@
目前還無法解決此問題!
3 則留言:
有辦法在設計一個鎖定螢幕顯示的方向嗎?
因為有時候反射在玻璃上
調整角度時,螢幕又會自動旋轉
在加上這個功能應該會更方便一些
目前在最新的版本中應該已經鎖定螢幕方向囉
螢幕方向可以手動調整嗎
好像都只能顯示一邊而已
張貼留言