zoukankan      html  css  js  c++  java
  • Android屏幕重力感应旋转

    public class MainActivity extends AppCompatActivity {
    
      private MyOrientoinListener myOrientoinListener;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            myOrientoinListener = new MyOrientoinListener(this);
            boolean autoRotateOn = (android.provider.Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1);
            //检查系统是否开启自动旋转
            if (autoRotateOn) {
                myOrientoinListener.enable();
            }
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //销毁时取消监听
            myOrientoinListener.disable();
        }
    
        class MyOrientoinListener extends OrientationEventListener {
            public MyOrientoinListener(Context context) {
            super(context);
        }
    
        public MyOrientoinListener(Context context, int rate) {
            super(context, rate);
        }
    
        @Override
        public void onOrientationChanged(int orientation) {
            int screenOrientation = getResources().getConfiguration().orientation;
    
            if (((orientation >= 0) && (orientation < 45)) || (orientation > 315)) {    //设置竖屏
                if (screenOrientation != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT && orientation != ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT) {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                }
            } else if (orientation > 225 && orientation < 315) { //设置横屏
                if (screenOrientation != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }
            } else if (orientation > 45 && orientation < 135) {// 设置反向横屏
                if (screenOrientation != ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE) {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
                }
            } else if (orientation > 135 && orientation < 225) { //反向竖屏
                if (screenOrientation != ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT) {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
                }
            }
        }
    }
  • 相关阅读:
    js控制打印 转的
    原生javascript Ajax
    前端页面js与flash交互——js获取flash对象,并传递参数
    物联网技术概要
    socket.io 入门教程
    转载:socket.io 入门
    转载:node.js socket.io
    IIS7 应用程序池设置成 经典 v2.0
    .net 估计要死在你手里了
    彻底的放弃.net
  • 原文地址:https://www.cnblogs.com/yxc6123/p/8385697.html
Copyright © 2011-2022 走看看