可能重複:
How to size an Android view based on its parent’s dimensionsAndroid:如何獲得自定義視圖的高度和寬度?
我怎麼使用getMeasuredWidth()
和getMeasuredHeight
?它始終返回0.這和getHeight()
和getWidth()
之間有什麼不同?
可能重複:
How to size an Android view based on its parent’s dimensionsAndroid:如何獲得自定義視圖的高度和寬度?
我怎麼使用getMeasuredWidth()
和getMeasuredHeight
?它始終返回0.這和getHeight()
和getWidth()
之間有什麼不同?
對不起,這個問題已經被問到。我在這裏找到答案 - How to size an Android view based on its parent's dimensions
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
這回答了「如何使用'''getMeasuredWidth()'''」但不回答原始問題,即「如何獲得自定義視圖的高度和寬度」 – 2017-03-03 21:20:46
那麼getheight獲得高度,getwidth獲得寬度。但是你很快就會調用這些方法。如果你在oncreate或onresume中調用它們,視圖還沒有繪製出來。您必須在繪製視圖後調用它。
我在問getMeasuredHeight()和getHeight()之間的區別。好的,我怎麼才能獲得屏幕的寬度和高度呢? – 2010-11-02 04:48:28
我也損失了大約getMeasuredWidth()
和getMeasuredHeight()
getHeight()
和getWidth()
很長一段時間..........後來我發現onSizeChanged()
方法是很有益的。
新的博客文章:如何在Android的http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html
得到customView(擴展視圖)的寬度和高度尺寸剛剛得到一個解決方案,使自定義視圖的高度和寬度:
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
}
它在我的情況下工作。
我相信這是確定寬度和高度的正確方法。這也是最簡單的。 – Kerry 2013-08-16 11:32:21
鍵盤出現時出現一個問題,稱爲 – 2015-02-18 05:51:03
可以使用下面的方法來獲取視圖, 。例如寬度和高度,
int height = yourView.getLayoutParams().height;
int width = yourView.getLayoutParams().width;
這給出了在XML佈局指定的視圖的轉換值。
說,如果身高指定的值53dp在XML中,你會得到整數換算值80
請注意,只要指定了寬度或高度,就會給出寬度/高度。如果你設置了WRAP_CONTENT,這不會給出正確的寬度/高度。它將返回-1或0,具體取決於其「MATCH_PARENT」或「WRAP_CONTENT」。 http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html – Reinherd 2013-10-07 07:35:31
真的,它給我-1,而不是scrollview的實際高度,我需要一個滾動視圖高度,在我的情況下,我有scrollview和seekbar,需要同時更改它,即如果我通過scrollview同時滾動x數量seekbar進度應該改變爲滾動視圖相同。 – 2013-12-26 10:48:19
getHeight()
和getMeasuredHeight()
之間的區別在於,第一種方法將返回View
的實際高度,第二個將返回View
的孩子的總結高度。在其他語言中,getHeight()
返回視圖高度,getMeasuredHeight()
返回此視圖需要顯示的所有元素的高度
它可以在任何情況下相同?我的價值都是一樣的,有可能嗎? – 2013-12-26 10:49:35
當然,它可以是相同的。例如,如果您的孩子與其父母具有相同的身高。 – OFFmind 2014-01-11 07:11:26
爲什麼我不能在View中使用Display Display = getWindowManager()。getDefaultDisplay();? – 2010-11-02 04:53:38