創建自定義視圖並重寫它的onDraw()。使用Android,將畫布大小限制爲使用layoutparams指定的View大小
- 不覆蓋onMeasure()畫布佔用整個屏幕 設備。
- 覆蓋onMeasure(),將畫布重新調整爲尺寸爲 傳遞給setMeasuredDimension()。
因此,我們可以調整畫布的大小,並且必須在onMeasure()中完成。
我想重新大小我的自定義視圖在其指定的大小的畫布的LayoutParams(XML或Java)需要方法/屬性,這將返回的LayoutParams提到的尺寸參數裏面傳遞
現在setMeasuredDimension()。
的getWidth()/的getHeight() - 值僅後onMeasure()
getLayoutParams()寬度/ getLayoutParams()的第一通設置高度 - 不知道當此值將返回getMeasuredWidth()/ getMeasuredHeight() - 返回在佈局參數中指定的大小參數,僅當它已在XML中設置時,而不是在編程上指定時才返回在佈局參數中指定的大小參數。
是否有任何其他方法出示擔保這將返回寬度已在customview OR getMeasuredWidth()的佈局PARAMS被設置&高度/ getMeasuredHeight()是正確的選擇在setMeasureDimensions通過()?
可能是重複的Android Custom View Size
來自'LayoutParams'的值被髮送到'onMeasure'方法,這是你的工作,以這樣的方式覆蓋它,以反映這些值。 – Luksprog
@Luksprog:是否有任何方法來查找是否設置了「fill_parent」或「wrap_content」。 – Mani
@Luksprog:LayoutParams中的值只有在以XML格式設置時纔會發送到onMeasure方法,而不是以編程方式分配。 CustomView customView = new CustomView(getApplicationContext()); customView.setLayoutParams(new LayoutParams(100,100)); onMeasure()接收可用的屏幕寬度和高度。 – Mani