늘 겸손하게

안드로이드 View 넓이 높이 동적 변환 본문

Programming/Android

안드로이드 View 넓이 높이 동적 변환

besforyou999 2021. 8. 4. 12:56

 

안녕하세요 besforyou입니다.

 

이번 글에서는 안드로이드 뷰의 넓이 높이동적으로 변환하는 방법을 소개하겠습니다.

 


근데 왜 그래야 돼?

 

뷰의 넓이와 높이를 하드코딩으로 정해줄 수도 있습니다. 

 

여기서 하드코딩이란, 숫자로 일일이 값을 정해주는 것을 말합니다.

 

이런식으로

 

하드코딩으로 넓이, 높이를 정해주면 개발자 입장에서는 매우 편리하지만, 사용자의 모바일 기기에 따라서 뷰가 겹칠 수도 있습니다. 왜냐하면 사용자의 모바일 기기 화면 크기는 천차만별이지만 화면 크기에 따라서 뷰의 크기도 변하지 않고 하나의 값으로 고정되어 있기 때문에 뷰가 겹쳐 보일 수 있습니다.

 

큰 화면

 

작은 화면. 툴 버튼이 겹친다

 

 


해결책

 

뷰의 넓이와 높이를 화면 크기에 따라 동적으로 정해주는 방법을 사용하면 된다.

 

1. Point 클래스 객체 선언

 

 

2.  getScreenSize 메소드 생성 

 

 

디스플레이의 사이즈를 반환하는 메소드.

이 예제에서는 progress bar의 넓이, 높이를 동적으로 설정해보겠습니다.

 

 

3. findViewById로 progress bar 참조

 

 

4. getScreenSize 메소드에 현재 activity를 인자로 주어 디스플레이의 넓이, 높이를 p에 할당

 

 

5. getLayoutParams() 메소드로 progress bar의 넓이, 높이 수정

 

 

 


결과

 

짤막한 프로그레스 바 가

 

 

화면 크기에 따라서 길쭉하게 보인다