관리 메뉴

나만을 위한 블로그

[Android] 커스텀 다이얼로그 사이즈 조절하기 본문

Android

[Android] 커스텀 다이얼로그 사이즈 조절하기

참깨빵위에참깨빵 2020. 3. 13. 17:12
728x90
반응형

참고한 사이트 : https://arabiannight.tistory.com/entry/350

 

안드로이드/Android Dialog 사이즈 조절 하기 ~!

< 개발 환경 > ● 작성일 : 2013.02.04 ● OS 설치 버전 : Windows7 32bit ● SDK 설치 버전 : 안드로이드 SDK 4.2 (젤리빈) / API LEVEL : 17 ● ADT 설치 버전 : 21 ● Java 설치 버전 : JDK 1.6.0_20 / JRE6 ●..

arabiannight.tistory.com

 

앱을 만들던 도중 AlertDialog로는 성에 안 차서 커스텀 다이얼로그를 만들 일이 생겼다.

그래서 커스텀 다이얼로그를 써볼까 해서 만들었는데 막상 실행하고 보니 내가 생각했던 것과 달리 가로세로 크기가 너무 작게 나왔다. 화면 중앙에 나오기는 했지만 이건 못 써먹겠다 싶을 정도로 작았다.

xml 파일의 width, height를 건드려도 봤지만 이상하게 먹히질 않았다.

 

해결 방법은 커스텀 다이얼로그 클래스의 다이얼로그를 어떻게 기능시킬 건지 정하는 함수 안에서 LayoutParams라는 속성을 건드리면 된다.

이 LayoutParams는 레이아웃 파라미터라는 건데 디벨로퍼에선 ViewGroup.LayoutParams라는 제목으로 써놨다.

https://developer.android.com/reference/android/view/ViewGroup.LayoutParams

 

ViewGroup.LayoutParams  |  Android 개발자  |  Android Developers

ViewGroup.LayoutParams public static class ViewGroup.LayoutParams extends Object java.lang.Object    ↳ android.view.ViewGroup.LayoutParams LayoutParams are used by views to tell their parents how they want to be laid out. See ViewGroup Layout Attributes fo

developer.android.com

이 LayoutParams는 뷰에서 부모 레이아웃의 형태를 정의하기 위해 사용된다고 한다.

기본적인 LayoutParams 클래스는 너비, 높이 모두에서 뷰의 크기를 지정할 수 있다. 즉 match_parent, wrap_content, 혹은 수치로 뷰의 크기를 지정할 수 있다는 뜻이다.

아래는 내가 사용한 코드다.

 

커스텀 다이얼로그를 만들기 위해 따로 CustomDialog를 만들었고 callDialog()를 통해 다이얼로그가 어떻게 동작할지를 정해줬다.

WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); 부분부터 주목할 필요가 있다.

이 코드는 다이얼로그 창의 속성을 LayoutParams 객체(이하 params)에 저장하는 부분이다.

그리고 params의 속성인 width, height를 MATCH_PARENT, WRAP_CONTENT 중 어떤 걸로 할 건지를 지정했다.

그리고 Dialog 객체에 params를 붙인 다음 show()로 보여준다.

 

이렇게 하니 내가 원하는 크기의 커스텀 다이얼로그를 화면에 띄울 수 있었다.

반응형
Comments