方法一:
1 |
DisplayMetrics dm = new DisplayMetrics(); |
2 |
getWindowManager().getDefaultDisplay().getMetrics(dm); |
3 |
int width = dm.widthPixels; |
4 |
int height = dm.heightPixels; |
判斷寬高那個大
方法二:
1 |
if ( this .getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) |
2 |
{ // 豎屏 |
3 |
// doSomrthing |
4 |
} else |
5 |
{ |
6 |
// 橫屏時dosomething |
7 |
} |
設置:
方法一:在AndroidManifest.xml中配置
如果不想讓軟件在橫豎屏之間切換,最簡單的辦法就是在項目的AndroidManifest.xml中找到你所指定的activity中加上Android:screenOrientation屬性,他有以下幾個參數:
"unspecified":默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
"landscape":橫屏顯示(寬比高要長)
"portrait":豎屏顯示(高比寬要長)
"user":用戶當前首選的方向
"behind":和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
"sensor":有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。
"nosensor":忽略物理感應器,這樣就不會隨着用戶旋轉設備而更改了("unspecified"設置除外)。
方法二:在Java代碼中設置
設置橫屏代碼:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//橫屏
設置豎屏代碼:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//豎屏
因為橫屏有兩個方向的橫法,而這個設置橫屏的語句,如果不是默認的橫屏方向,會把已經橫屏的屏幕旋轉180°。
所以可以先判斷是否已經為橫屏了,如果不是再旋轉,不會讓用戶覺得轉的莫名其妙啦!代碼如下: