Android检测当前屏幕的方向

481 查看

做为一个不那么像初学者的初学者,我注意到Android已经提供了检测屏幕方向的API,而我在《Android 4编程入门经典——开发智能手机与平板电脑应用》书中经常看到的做法却是比较屏幕的宽度和高度以此来判断是横向还是纵向模式。

书中做法

import android.view.Display;
import android.view.WindowManager;

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);

   //---get the current display info---
   WindowManager wm = getWindowManager();
   Display d = wm.getDefaultDisplay();
   if(d.getWidth() > d.getHeight()) {
      //---landscape mode---
      Log.d("Orientation", "Landscape mode");
   } else {
      //---portrait mode---
      Log.d("Orientation", "Portrait mode");
   }
}

而一般利用Android提供的方法可以这么做

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
    //---landscape mode---
}
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
    //---portrait mode---
}

这两种方法有什么区别么?