有个测试需要,得判断当前是横屏还是竖屏,需要用代码实现,已知能获得当前的Activity

解决方案 »

  1.   

    getResources().getConfiguration().orientation
    一般都是 onConfigurationChanged 里面处理
      

  2.   


    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);

    int screenWidth = dm.widthPixels;
    int screenHeight = dm.heightPixels;
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
    if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
      //横屏
    }else{
      //竖屏 
      
    }
    super.onConfigurationChanged(newConfig);
    }
      

  3.   

        DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);
            
            int screenWidth = dm.widthPixels;
            int screenHeight = dm.heightPixels;这个方法慎用  在mdpi有时会有问题,可能需要额外的配置参数
      

  4.   

    我是写的测试类,继承ActivityInstrumentationTestRunner2<>类,然后获取到被测试的activity,怎么判断这个Activity的是横屏 还是竖屏类