달력

122025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'Android Programming/Android Layout'에 해당되는 글 2건

  1. 2010.07.04 레이아웃 전개(Layout Inflation)
  2. 2010.06.03 XML로 레이아웃을 지정하는 이유?

'Inflation ?? 뭐라구요?? 이게뭐지..'
공부를 하던 도중, 이 부분을 읽다가 깜박 잠이 들었습니다.
휴.. 잠에서 깨고 보니 정리가 필요한 부분같아서 이렇게....

자 그럼, 지금부터 레이아웃 전개가 무엇인지 알아보도록 하죠.


전개란?

XML문서에 있는 레이아웃은 생성할 뷰의 목록, 구조, 속성 등을 상세하게 적어 놓은것입니다.
즉, 뷰의 목록에 대한 정보일 뿐, 실제 뷰가 아니기 때문에
액티비티(화면) 안에 놓이려면 이 정보대로 객체를 생성해야합니다.
레이아웃은 aapt툴에 의해 이진형태로 컴파일되어 실행파일에 내장되게 되고, 프로그램 실행시에 로드되어 실제 객체로 바뀌게 되어 보이는 것입니다.

한마디로, "XML문서에서 정보를 읽어 실제 뷰 객체를 생성해 내는 동작" 이라고 할 수 있습니다.
바로 이러한 동작을 전개(Inflation)이라고 합니다.


이 전개 과정을 우리가 직접 수행할 수 있도록 공개되어있는데, 다음을 보시길 바랍니다.

public class Inflation extends Activity{
public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

          LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

          LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.inflation, null);
          setContentView(linear);
}
}

 
LayoutInflater 클래스는 XML 리소스를 전개하여 뷰 객체를 만들어 냅니다.



다음과 같은 코드를 사용하면, 전개와 액티비티에 등록까지 한줄에 끝입니다.
setContentView(View.inflate(this, R.layout.inflation, null));

전개를 하는 여러가지 방법이 제공되는데, 그때 그때 편한 방법을 사용하면 됩니다.

그렇다면 왜..! 사용자가 직접 전개를 하도록 전개자를 제공하는 것일까요.
그냥 setContentView로 ID를 전달하면 알아서 되는데 말이죠..

사실 XML문서를 한번에 전개한다면 전개자가 필요가 없습니다.
특정 뷰 하나만 , 또는 특정 뷰 그룹 하나만 따로 전개하는 것을 지원하기 위해서 전개자가 제공되는 것입니다.

어쩔때 사용할 수 있을까요?

예를들어 EditText를 이곳저곳에서 자주 사용한다면?
매번 XML문서에 EditText를 작성하기도 귀찮고,
코드로 new로 생성하기도 귀찮겠죠.
이럴때 EditText 하나에 대해서만 XML문서를 만들어놓고 전개해서 사용하면 됩니다.
물론 EditText 하나만이 아닌, 복잡한 XML문서를 만들어놓고 전개해서 사용하셔도 되구요~~

'Android Programming > Android Layout' 카테고리의 다른 글

XML로 레이아웃을 지정하는 이유?  (0) 2010.06.03
Posted by 와일드_
|

자바 코드로도 XML로 레이아웃 지정하는 모든 기능을 완벽하게 처리할 수 있다.
더군다나 XML파일은 독립된 파일이므로 화면이 바뀌면 계속 따로 변경해줘야한다.
이런 불편함이 있는데도 XML 레이아웃 파일을 사용하는 이유는 뭘까?


결과적으로 가장 큰 이유는
GUI 화면 디자인 프로그램에서 화면을 좀 더 쉽게 생성하고 관리하겠다는 목표가 아닐까한다.

이클립스와 같은 GUI구성 프로그램으로도 XML 파일 대신 코드를 직접 생성할 수 있지만, 아직 불완전하고
자바 코드로만 생성가능하지만,
이미 만들어진 자바 코드는 코드를 다시 읽어 변경할 수 있게 지원하기가 어렵다는 점이다.

XML 파일을 실제 기능이 들어가는 자바 코드와 분리하고 있으므로
자바 코드에서 변경된 부분 때문에 구성해둔 화면이 깨지거나, 반대로 화면이 변경되면서 기능에 오류가 생기는 등의 문제가 크게 줄어든다.
또한, 자바 코드를 직접 작성하는 개발자 역시 구성된 화면을 쉽게 가져와 사용할 수 있는 장점이 있다.

이러한 장점들때문에 XML로 레이아웃을 지정하려는 움직임이 활발하다.


덧1) XML은다음과 같은 이점을 제공한다.
    1. 코드와 데이터가 완벽하게 분리 됨으로써 개발자와 디자이너의 역할분담.
    2. 조건에 따라 레이아웃을 교체 가능, 호환성도 확보되고 국제화에 유리.
    3. 레이아웃만 수정시에 코드를 컴파일하지 않아도 되므로 개발 속도 향상.
    4. 구조와 속성을 함축해서 표현할 수 있고, 레이아웃 재활용도 가능.


~

'Android Programming > Android Layout' 카테고리의 다른 글

레이아웃 전개(Layout Inflation)  (0) 2010.07.04
Posted by 와일드_
|