본문 바로가기

~2023

[Android] xml이 아닌 inflate를 사용해 View 꾸미기

728x90
반응형

<실행 예시>

 

 


<풀이>

 

보통 xml 파일에서 View를 꾸미지만, java 파일에서 코드를 통해 View를 꾸미는 방법도 있다. 그러기 위해서는 inflate를 사용해야 한다.

inflate를 사용하는 방법으로 두 가지가 있는데 첫번째는 LayoutInflater 객체를 사용하는 것이고 두번째는 View 클래스의 static 메소드인 inflate()를 이용하는 것이다.

두번째 방법이 더 유용하기 때문에 두번째 방법을 어떻게 사용해야 하는지 자세히 이야기해보겠다.

inflate 매개변수로 xml로 디자인한 Component를 불러와 Layout에 addView() 해주면 된다. 이렇게 하면 xml마다 View를 만들어 줄 필요 없이 Component를 효율적으로 재사용할 수 있다.

addView()는 LinearLayout 같은 Layout 클래스의 객체가 가진 메소드로 llManager.addView()를 해주면 Layout에 View가 추가된다. 또한, setOrientation()으로 LinearLayout.{수평 혹은 수직} 설정이 가능하다.

그런데 addView()를 사용할 때 뷰 그룹을 넘겨줘야 하기 때문에 Layout.LayoutParam의 객체를 만들어 addView()의 두번쨰 매개변수로 넘겨주면 된다.

그래서 마지막으로 setContentView()에 xml 파일을 넘겨주는 것이 아니라 llManager를 넘겨주면 코드로 꾸민 View들의 Layout을 화면에 보여준다.

 


<코드>

inflater: 첫번째 방법 사용 시 LayoutInflater 객체

llManager: xml 파일을 대신할 Layout


main.java
main.xml
my_button.xml

 

 

 

 

 

728x90
반응형