ANDROID

안드로이드 프로그래밍 정복를 읽어보고 기초 대충 끄적끄적...정리

룸훼훼 2011. 4. 12. 20:51
반응형
◆Layout
   View - View의 계층
안드로이드 응용프로그램의 화면을 구성하는 중요한 단위는 Activity이다.  화면을 나타내주는것이 액티비티라는 이야기인데
하지만 이놈은 실제로 보이지는 않고 액티비티안에 있는 뷰가 우리가보는 실체이다. 조각조각이 모여서 하나를 구성하는 퍼즐과 같은 느낌인데 뷰가 여러개 모이면 액티비티를 구성하게 되고 액티비티가 여러개 모이면 응용프로그램 즉 Application이된다.  뷰는 사용자 인터페이스를 구성하는 핵심 컴포넌트로서 화면상의 사각영역을 차지하며 자신의 모양을 그리고 사용자로부터 입력을 받아 드린다.
뷰는 방대 함으로 그냥 이렇게 알고 있자..일단 뷰는 크게 두가지 종류로 분류된다. 위젯뷰그룹인데 일단 위젯은 직접적으로 보이며 사용자 인터페이스를 구성한다. 뭐 버튼 , 에디트 , 라디오 버튼 등등 이런거..
뷰그룹은 직접적으로 보이지는 않는데 다른 뷰를 담는 컨테이너역할을 한다. 이부류의 클래스를 레이아웃이라한다.

뷰 역시도 자바클래스의 일종이므로 object로 부터 파생된다. 뷰로 부터 직접적으로 파생되는 모든 클래스가 바로 위젯이며
스스로를 그릴수 있는 능력을 가지고 있다.
모든뷰는 뷰클래스로 부터 파생되므로 뷰가가진 모든 속성과 매서드를 그대로 상속 받는다. 따라서 뷰에 정의된 멤버는 파생된
클래스에도 공통적으로 존재 한다. 뷰를 칭하는 이름을 정의 하는것을 id라 하는데 코드나 xml문서에서 이뷰를 참조할때 id를 사용하므로 의미를 잘 설명할수 있는 직관적인 이름을 붙이는것이 원칙이다. xml문서에 id를 지정해 놓으면 이름이 R.java에 정수형 상수로 정의된다. 코드에서 이 뷰를 참조할때 findViewById라는 메서드를 호출하는데 인수로 참조할 뷰의 id를 전달한다. 

이밖에 layout_width, layout_height, background, padding, visibility 등이 있다.

◆Event Handler
   Event 처리
이벤트를 받는 가장 쉬운 방법은 해당 클래스를 재정의해 콜백 메서드를 작성하는 것이다. 콜백은 특정 이벤트가 발생 했을경우 시스템에 의해 자동으로 호출되는 메서드이다. 이메서드에 코드를 작성해 놓으면 이벤트 발생시 동작을 정의 할 수 있다.
사용자와 상호작용하는 주체가 뷰이므로 이벤트 콜백은 주로 뷰가 제공한다.
대표적인 콜백 - 
boolean onTouchEvent(MotionEvent event) - 화면터치 정보
boolean onKeyDown(int keyCode, KeyEvent event) - 눌러진 키 정보
boolean onKeyUp(int keyCode, KeyEvent event) - 누르고땐 키 정보
boolean onTrackBallEvent(MotionEvent event) 트랙볼 정보

이벤트를 사용해 구현해보는것이 도움이 된다.

  리스터 인터페이스 
Listener는 특정 이벤트를 처리하는 인터페이스이다. 이름 그대로 이벤트 발생 여부를 기다리고 있는 객체이다.
리스너에는 대응되는 이벤트를 받는 단 하나의 메서드가 선언되어 있으며 모두 View클래스의 이너 인터페이스로 선언되어
있다.
대표적인 리스너 와 선언된 메서드 -
View.OnTouchListener : boolean onTough(View v, MotionEvent event) 
View.OnKeyListener : boolean onKey(View v, int keyCode, KeyEvent event)
View.OnClickListener : boolean onClick(View v)
View.OnLongClickListener : boolean onLongClick(View v)
View.OnFocusChangeListener : boolean onFocusChange(View v, boolean hasFocus)
Vew클래스의 내부 인터페이스로 OntouchListener인터페이스가 선언되어 있고 이 인터페이스는 onTouch라는 추상 메서드를 포함 한다. 이메서드를 이벤트 핸들러라고 부른다. 다른 리스너들도 이름만 조금씩 다를 뿐이지 거의 비슷한 구조이다. 각인터페이스에는 이벤트를 처리하는 추상메서드가 딱 하나씩만 선언되어 있고 구현은 물론 없다. 다만 특정이벤트를 처리하는 핸들러의 원형이 어떠해야 한다는 것을 강제 할 뿐이다.

이벤트를 처리하려면 리스너를 구현하는 클래스를 선언하고 그객체를 생성해야한다./232
 
반응형

'ANDROID' 카테고리의 다른 글

ADB 기본  (0) 2011.12.15
안드로이드 팁  (0) 2011.12.15
onConfigurationChanged -  (0) 2011.02.21
ADB server error  (0) 2011.02.17
OTA(Over The Air) , FUMO (Firmware Update Management Object)  (0) 2011.02.15