1. Dispaly android
Java代碼
- WindowManager windowManager = getWindowManager();
-
- Display display = windowManager.getDefaultDisplay();
-
- screenWidth = display.getWidth();
-
- screenHeight = display.getHeight();
2.DisplayMetrics canvas
Java代碼
- DisplayMetrics dm = new DisplayMetrics();
-
- this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指當前activity
-
- screenWidth =dm.widthPixels;
-
- screenHeight =dm.heightPixels;
以上兩種方法在屏幕未顯示的時候,仍是處於0的狀態,即要在setContentView調用以後纔有效。
3.canvas
在onDraw中由canvas來得到 this
Java代碼 spa
- screenWidth =canvas.getWidth();
-
- screenHeight =canvas.getHeight();
而視圖的高寬則是大多數人所認爲的canvas的高寬,其實他所指的是除了任務欄和狀態欄的高寬,主要有以下方法:
1. xml
Java代碼
- viewWidth=this.getWidth();
-
- viewHeight=this.getHeight();
2.重寫view的onSizeChanged,該方法會在onCreate以後,onDraw以前調用 ip
Java代碼
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- viewHeight=h;
- viewWidth=w;
- super.onSizeChanged(w, h, oldw, oldh);
- }
任務欄、狀態欄的高寬的高寬我目前還不清楚,不過從網上查找可知: get
引用
frameworks/core/res/values/themes.xml
<item name="windowTitleSize">25dip</item>
frameworks/core/res/values/dimens.xml
<dimen name="status_bar_height">25dip</dimen>
在一個activity中若是要獲取高寬,最好是放在onSizeChanged中比較保險。
以上是我對android得到高寬的一點總結,若是有錯誤的地方,歡迎留言探討。
另外,還有對屏幕顯示的一些設置:
//設置爲無標題 it
Java代碼
- requestWindowFeature(Window.FEATURE_NO_TITLE);
//設置爲全屏模式getWindow().setFlags io
Java代碼
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//設置爲橫屏 request
Java代碼
- setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);