[英]How to swtich Accelerometer Axis based on Device?
我的Android應用程序使用Y軸加速度計來控制游戲中的角色。
這在大多數手機上運行良好,但是在我的Galaxy Tab 2 10.1上,軸似乎是顛倒的,我必須手動改變它的工作輸入。
我想寫一個簡單的條件語句,它將根據設備類型進行交換,但是我不確定最佳實踐是什么。 我相信在我提出問題之前,有人會遇到這個問題。
如何更改加速度計軸,我如何確定設備是桌子還是移動設備?
我認為這與設備的默認方向有關,它往往是手機的肖像或平板電腦的風景。 這里有一個問題: 如何在Android上檢查設備的自然(默認)方向(例如,獲取摩托羅拉魅力或Flipout的風景) ,根據我的經驗,我會說這是最好的答案 。 需要了解的一點是,無論顯示器在做什么(橫向,縱向等),傳感器使用的xyz軸都不會改變。
我發現最好的方法是檢查設備上的屏幕大小,並將布爾條件基於設備使用哪個軸。 經過測試,效果很好。
//檢查屏幕布局以確定設備是否為平板電腦。
public boolean isTablet(Context context) {
boolean xlarge = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
boolean large = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE);
return (xlarge || large);
}
// Changle Accelx或基於上面的Accely輸入(Im使用OpenGLES 1.1)
if (isTablet(glGame)) {
world.update(deltaTime, game.getInput().getAccelX());
}
if (!isTablet(glGame)) {
world.update(deltaTime, game.getInput().getAccelY());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.