簡體   English   中英

如何根據設備切換加速度計軸?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM