編輯:關於Android編程
通過View提供的方法獲取高度方式有兩種:
1, 當前顯示的view中直接獲取當前view高寬
2, 通過Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)獲取系統當前顯示的 view根(是一個framelayout對象),android繪制會將要繪制的view放置在framelayout中繪制。
Display對象獲取屏幕高寬 :
獲取display對象 Activity中getWindowManager().getDefaultDisplay()
getWidth() 返回顯示界面寬度即屏幕寬度
getHeight() 返回顯示界面高度即屏幕高度
由display對象設置DisplayMetrics高寬值,通過DisplayMetrics對象獲取屏幕高寬,有點多此一舉 :
getWidth() 返回顯示界面寬度即屏幕寬度
getHeight() 返回顯示界面高度即屏幕高度
常用一些值計算:
屏幕高寬
Canvas對象 、display對象和DisplayMetrics可獲取屏幕的高寬
狀態欄高度
View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect後,outRect.top()即是狀態欄高度
標題高度
View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect後,outRect.height()-view.getheight()即是標題高度。
1.獲取狀態欄高度:
decorView是window中的最頂層view,可以從window中獲取到decorView,然後decorView有個getWindowVisibleDisplayFrame方法可以獲取到程序顯示的區域,包括標題欄,但不包括狀態欄。
於是,我們就可以算出狀態欄的高度了。
復制代碼 代碼如下:
Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
2.獲取標題欄高度:
getWindow().findViewById(Window.ID_ANDROID_CONTENT)這個方法獲取到的view就是程序不包括標題欄的部分,然後就可以知道標題欄的高度了。
復制代碼 代碼如下:
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面所求的狀態欄的高度
int titleBarHeight = contentTop - statusBarHeight
手勢操作可以說是智能手機的一種魅力所在,前兩節給大家講解了兩種有趣的手勢操作,將它們置於游戲當中,大大提升了
最近在網上看到時間軸的布局效果,嘗試按照這個原理,實現物流跟蹤的效果,目前已經實現了,效果如下圖。 界面布局主要是通過listView來
華為mate9和mate9 pro的區別 華為mate9介紹 新一代旗艦芯片 華為麒麟960 HUAWEI Mate 9搭載的麒麟960芯片, 八核C
這是“Android學習之路”系列文章的開篇,可能會讓大家有些失望——這篇文章中我們不介紹簡易版微信的實現(不過不是標題黨哦,我會在後續文章中一步步實現這個應用程序的)。