標籤:android blog java http com get
首先,有一點需要聲明,其實在android中,畫布Canvas的高寬其實是螢幕的高寬。
如此一來,獲得螢幕高寬的方法就很多了:
1.
Java代碼
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();
2.
Java代碼
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指當前activity
screenWidth =dm.widthPixels;
screenHeight =dm.heightPixels;
以上兩種方法在螢幕未顯示的時候,還是處於0的狀態,即要在setContentView調用之後才有效。
3.
還可以在onDraw中由canvas來獲得
Java代碼 screenWidth =canvas.getWidth(); screenHeight =canvas.getHeight();
而視圖的高寬則是大多數人所認為的canvas的高寬,其實他所指的是除了工作列和狀態列的高寬,主要有如下方法:
1.
Java代碼
viewWidth=this.getWidth();
viewHeight=this.getHeight();
2.重寫view的onSizeChanged,該方法會在onCreate之後,onDraw之前調用
Java代碼
protected
void onSizeChanged(
int w,
int h,
int oldw,
int oldh) { viewHeight=h; viewWidth=w;
super.onSizeChanged(w, h, oldw, oldh); }
工作列、狀態列的高寬的高寬我目前還不清楚,不過從網上尋找可知:
引用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獲得高寬的一點總結,如果有錯誤的地方,歡迎留言探討。
另外,還有對螢幕顯示的一些設定:
//設定為無標題
Java代碼 requestWindowFeature(Window.FEATURE_NO_TITLE);
//設定為全螢幕模式getWindow().setFlags
Java代碼
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//設定為橫屏
Java代碼
setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);
(轉自: http://blog.csdn.net/yiyaaixuexi/article/details/6233005)