代码之家  ›  专栏  ›  技术社区  ›  ddyer

Android设置方向

  •  0
  • ddyer  · 技术社区  · 4 年前

    我有一个古怪的android设备,没有重力传感器,在这个设备上, 如果没有传感器,下面的工作正常。

            Activity act = AndroidNativeUtil.getActivity();
        int newo = portrait 
            ?   (reverse
                    ? ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT
                    : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
            :   (reverse
                    ? ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE
                    : ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        act.setRequestedOrientation(
                newo
    

    是否有其他API可以锁定屏幕方向?一些

    0 回复  |  直到 4 年前
        1
  •  2
  •   Istiak    4 年前

    检查方向

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    
    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
    }
    

    public class OrientationUtils {
    private OrientationUtils() {}
    
    /** Locks the device window in landscape mode. */
    public static void lockOrientationLandscape(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
    
    /** Locks the device window in portrait mode. */
    public static void lockOrientationPortrait(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
    
    /** Allows user to freely use portrait or landscape mode. */
    public static void unlockOrientation(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
    }
    
    }
    
        2
  •  -1
  •   dinhlam    4 年前

    怎么样 android:screenOrientation="locked" (From API 18)