Programing
-
이벤트 처리 3 - 액티비티 또는 뷰가 리스너 구현Programing/Android 2010. 10. 5. 07:53
인터페이스는 누가 구현할 것인가에 대해서는 제약이 없다. 꼭 새로운 클래스가 만들어져 인터페이스를 구현할 필요없이 기존에 클래스가 있다면 그 클래스에서 구현하면 되는것이다. 이벤트 처리 2 - 리스너 인터페이스 구현에서 한것 처럼 새로운 클래스를 만들어서 이를 구현할 필요없이 액티비티에서 바로 구현할 수 있는 것이다. public class HandleEvent extends Activity implements View.OnTouchListener 위와 같이 선언하면 액티비티가 인터페이스를 구현 할 수 있다. 구현이 끝난후 vm.setOnTouchListener(TouchListener)을 vm.setOnTouchListener(this) 로 바꾸어 자신이 이벤트를 구현했다고 등록만 해주면 같은 결과가 ..
-
이벤트 처리 2 - 리스너 인터페이스Programing/Android 2010. 10. 5. 07:26
리스너는 특정 이벤트를 처리하는 인터페이스이다. 모든 리스너는 View클래스의 이너 인터페이스로 선언되어 있다. View.OnTouchListener : boolean onTouch ( View v, MotionEvent event) View 클래스 내부 인터페이스로 OnTouchListener 인터페이스가 선언되어 있고 이 인터페이스는 onTouch 라는 추상 메서드를 포함한다. 이러한 메서드를 이벤트 핸들러라고 부른다. 다른 리스너들도 이름만 조금씩 다를 뿐이지 거의 비슷한 구조이다. 모든 인터페이스에는 이벤트를 처리하는 추상 메서드가 딱 하나씩만 선언되어 있다. 리스너를 구현하는 클래스를 선언하고 추상 메서드인 핸들러를 구체적으로 구현하면 리스너 객체가 만들어진다. 하지만 이렇게 만들기만 한다고 이..
-
이벤트 처리 1 - 콜백 메서드 재정의Programing/Android 2010. 10. 5. 06:53
자바문법은 여러 가지 변형된 구조를 허락하고, 각 이벤트마다의 특성이 조금씩 다르기 때문에 이벤트를 처리하는 다양한 방법들이 존재한다. 각 방법별로 효율성이나 가독성에 차이가 있으므로 그때그때 적절한 방법을 선택해서 사용해야한다. 첫번째 방법은 콜백 메서드 재정의 방법이다. 콜백은 특정 이벤트가 발생했을 때 시스템에 의해 자동으로 호출되는 메서드이며 이 메서드에 코드를 작성해 놓으면 이벤트 발생시의 동작을 정의할 수 있다. boolen onTouchEvent (MotionEvent event) 많은 콜백함수중 위에 코드는 화면을 터치할 때 발생하는 이벤트이다. 위의 사진은 에뮬레이터의 아무곳이나 클릭하면 Toast로 "터치이벤트 발생"이라는 텍스처를 보여주는 화면이다. 소스 코드는 아래와 같다. Myvi..
-
ImageView의 속성Programing/Android 2010. 10. 3. 16:46
ImageView는 아이콘이나 비트맵을 출력하는 위젯이다. 텍스트만으로는 이쁘고 직관적인 화면을 만들기 어렵기에 ImageView역시 많이 사용되어 진다. textView와 더불이 가장 많이 사용되어 지는 ImageView의 속성에 대해 알아보자. 1.src - 출력할 이미지를 지정하는 속성이다. - 색상값을 출력할 수도 있고 외부의 이미지를 지정할 수 있다. - @drawable/ID 형식으로 이미지의 ID를 지정하면 해당 이미지가 이미지뷰의 표면에 출력된다. 2. adjustViewBounds - 이미지의 종횡비를 맞추기 위해 이미지 뷰의 크기를 적당히 조정할 것인가를 지정한다. - bool값을 사용한다. 3. cropToPadding - 위젯의 주어진 여백에 맞추기 위해 이미지의 일부를 잘라내는 속..
-
TextView의 속성Programing/Android 2010. 10. 3. 16:14
TextView는 이름 그대로 화면에 텍스트를 출력하는 위젯이다. 단순히 문자열을 보여 주기만 할 뿐이며 사용자의 입력은 받아들이지 않는다. TextView의 속성으론 꽤 많은 것들이 있으나 직관적인 이름이고 상식적인 내용들이라 이해하기가 다소 쉽다. 자주 사용되어 지는 속성 몇가지만 알아보자. 1. text - 출력할 문자열을 지정한다. - text="hello world" 처럼 바로 대입하는 방식이 있지만 다국어 버전, 일관된 메시지 관리를 위해서는 string.xml에 문자열을 정의해 놓고 id를 지정하기도 한다. 2. textcolor - 문자열의 색상을 지정한다. - 디폴트색은 불투명한 밝은 회색이다. 3. textsize - 텍스트의 폰트 크기를 지정한다. - 숫자를 사용하고 단위로는 sp, ..
-
View의 속성Programing/Android 2010. 10. 3. 16:10
모든뷰(예를들면 버튼, 체크박스, 라디오버튼등등)은 View클래스로부터 파생되었기에 View가 가진 모든 속성과 메서드를 그대로 상속받는다. 여러가지 속성들이 있지만 대표적인 속성들을 정리해보자 1.id - 뷰의 이름을 정의한다. - @[+]id/ID 의 형식 - @정의하거나 참조한다는 의미, +는 새롭게 정의한다는 의미, id는 예약어이며, ID는 원하는 이름값 - XML 문서에 ID를 지정해 놓으면 이 이름이 R.java에 정수형 상수로 정의된다. - 모든위젯에 id를 꼭 지정해야될 필요성은없다. 참조될 위젯에만 id를 지정하면 된다. 2. latout_width, layout_height - 뷰의 가로 세로 길이를 지정한다. - 부모뷰의 크기만큼(fill_parent), 내용물의 크기만큼(wrap_..
-
View의 계층구조Programing/Android 2010. 10. 3. 16:00
안드로이드 응용 프로그램의 화면을 구성하는 주요 단위는 액티비티이다. 액티비티 자체는 화면에 직접적으로 보이지 않으며 액티비티 안의 뷰가 사용자를 대면하는 실체이다. 뷰가 모여 액티비티를 구성하고 액티비티가 모여 하나의 응용 프로그램이 되는 것이다. 그렇다면 뷰의 계층은 어떻게 만들어져 있을까? 1. 위젯: 직접적으로 보이며 사용자 인터페이스를 구성한다. 버튼, 텍스트 뷰, 에디트, 라이오 버튼 등이 위젯이며 흔히 컨트롤이라고 부른다. View도 자바 클래스의 일종이므로 당연히 최상위 Object로 부터 파생된다. 이들은 스스로 그릴 수 있는 능력을 가지고 있고, 굵은 상자의 것들이 빈번히 사용되어 지는 것들이다. 2. ViewGroup : 직접적으로 보이지는 않으며 다른 뷰를 담는 컨테이너 역할을 한다..
-
자동 생성된 첫 안드로이드 .java 소스 분석Programing/Android 2010. 10. 3. 10:35
위의 그림은 '안드로이드 프로그래밍 정복'이라는 책의 예제로 첫번째 안드로이드 프로그램 프로젝트를 생성시킨후 메인 .java 메인소스 부분이다. 가장 위의 팩키지 부분은 새 프로젝트 생성시 지정한 이름으로 자동으로 만들어진다. public class AndroidFirst extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 실질적으로 위의 단 4줄의 코드로 실행되어 지는데 간단하지만 하나하나 분석해보자 우선 AndroidFirst 라는 클래스는 Activity 클래스를 상속받는다.(extends) 다음은 on..