program story

Android : 사용자 정의보기의 높이와 너비를 얻는 방법은 무엇입니까?

inputbox 2020. 11. 15. 11:16
반응형

Android : 사용자 정의보기의 높이와 너비를 얻는 방법은 무엇입니까?


중복 가능성 :
상위의 크기를 기준으로 Android보기의 크기를 조정하는 방법

어떻게 사용 하는가 getMeasuredWidth()getMeasuredHeight? 항상이 사이의 디퍼 런스 세라마이드 무엇 0 반환 getHeight()하고 getWidth()?


사용자 정의보기의 높이와 너비를 얻는 솔루션이 있습니다.

@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
    super.onSizeChanged(xNew, yNew, xOld, yOld);

    viewWidth = xNew;
    viewHeight = yNew;
}

내 경우에는 작동합니다.


생성자 내부로 가져 오려고하지 마십시오. 호출 onDraw()방법으로 시도하십시오 .


다음 방법을 사용하여보기의 너비와 높이를 가져올 수 있습니다. 예를 들면 다음과 같습니다.

int height = yourView.getLayoutParams().height;
int width = yourView.getLayoutParams().width;

이것은 XML 레이아웃에 지정된 뷰의 변환 된 값을 제공합니다.

지정된 높이 값이 XML에서 53dp이면 정수로 변환 된 값을 80으로 얻게됩니다.


또한 주변의 분실 getMeasuredWidth()getMeasuredHeight() getHeight()getWidth()오랜 시간 동안 .......... 나중에 내가 발견 onSizeChanged()정말 도움이 될 방법을.

새 블로그 게시물 : Android에서 customView (View 확장)의 너비 및 높이 치수를 얻는 방법 http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html


차이 getHeight()getMeasuredHeight()첫번째 방법의 실제 높이를 반환한다는 것이다 View, 두 번째는 요약 높이 반환 View의 아이들. 다른 말로하면, getHeight()뷰 높이를 getMeasuredHeight()반환하고 , 이 뷰가 모든 요소를 ​​표시하는 데 필요한 높이를 반환합니다.


getheight는 높이를 가져오고 getwidth는 너비를 가져옵니다. 그러나 당신은 이러한 메서드를 너무 빨리 호출하고 있습니다. oncreate 또는 onresume에서 호출하는 경우 뷰가 아직 그려지지 않습니다. 뷰를 그린 후에 호출해야합니다.

참고 URL : https://stackoverflow.com/questions/4074937/android-how-to-get-a-custom-views-height-and-width

반응형