[Android] Button + EditText Android 2011. 12. 12. 15:47
버튼은 알다시피 이벤트를 발생 시킬 수가 있다.

단순한 텍스트를 올려서 버튼만 나타나는 것이 아니라 EditText와 함께 이용 하는 것을 살펴보면 다음과 같다.

main.xml에 다음을 추가하고

<EditText
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/edit"
     android:text="input"
     />
 <Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/btn"
     android:text="click"
     />

java 파일에서

Button btn =(Button)findViewById(R.id.btn);
        btn.setOnClickListener(new Button.OnClickListener(){
         
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    EditText edit = (EditText)findViewById(R.id.edit);
          String str = edit.getText().toString();
          Toast.makeText(Class명.this, str, Toast.LENGTH_SHORT).show();          
   }         
   });

다음을 추가한다. 단 여기서 자세히 보면 Toast라는 놈이 보인다. 이놈은 안드로이드에서 제공하는 것 같은데..

잘은 모르겠지만 View 형태로 나타난다. 실행해보면 Toast 위에 EditText에 입력한 글들이 찍혀서 나온다.

여기서 makeText인자를 보면 처음에 Class명.this 라고 한 놈이 보인다.

서적에서나 이런 곳에선 막연하게 따라하게 유도하는데 저곳은 반드시 Class명을 집어 넣도록 하자!!
[Android] ImageView Android 2011. 12. 12. 15:18
이미지 뷰는 말 그대로 이미지를 표시한다. 안드로이드는 png 확장자를 가진 파일을 추천하며 아래는 속성에 대한 내용이다.

src - 출력 속성이다. 이것에 데이터를 넣지 않으면 나타나지 않고 리소스에 이미지 넣은 뒤 ID 지정하여 사용
adjustViewBounds - 가로 세로를 맞추기 위한 것을 지정. true/false 이용
cropToPadding - 위젯 내의 여백 맞추기 위해 이미지 조절
tint - 이미지 위에 색상 적용
scaleType - 이미지 크기와 다르게 출력 시 적용.

리소스에 이미지를 등록하고 나면 R.java를 열어보면 자동으로 ID가 지정되어 있다.

또한 프로젝트 구조에 보면 3가지 형태로 나와있는데 l,m,h 로 시작하는 것은 말 그대로 저해상,중해상,고해상을 말하는 것이다.

다음은 필자가 해 본 예제 코드이다.

<ImageView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"    
     android:src="@drawable/calendar"    
     android:maxWidth="120px"
     android:maxHeight="120px"
     android:adjustViewBounds="true"
     android:tint="#4000ff00"   />

새삼 별 반 다를 것은 없다. 하지만 오타 내버리면.. 에뮬레이터에서 에러를 띄운다.
(사실.. VI라고 쳐놓고 버그 생겨서 뭐지 하고 한참을 고민했다;; ㅠ_ㅠ)
[Android] strings.xml Android 2011. 12. 12. 14:42
이곳에는 문자열을 정의 하는 곳이다.

strings.xml 파일을 열어보면 <string name="idvalue"> 식으로 시작 되는 것이 있다.

idvalue 이것이 바로 id 값이다. 쉽게 생각하면 변수 명이라고 생각을 하면 된다.

안드로이드 어플리케이션 상에서 문자열들은 이곳에 정의하고 이용을 한다.

테스트를 해 보자면 strings.xml 부분에

<string name="first">First</string>
 <string name="second">Second</string>
 <string name="third">Third</string>

추가를 하고

main.xml 부분에
<TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/first" />
    
<TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/second" />
   
<TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/third" />
추가를 한 뒤 실행을 해 보면 그 결과를 알 수 있을 것이다.
[Android] Intro Android 2011. 12. 12. 14:37
안드로이드 런타임은 JVM이 아닌 DVM(달빅가상머신)에서 돌아간다.

달빅은 자바 클래스를 바로 사용 할 수 없으며 dex 포멧으로 변환하여야만 동작 한다.

예전에 자바를 좀 만져봤지만.. 조금 이질적인 느낌을 많이 받는다.

또한 안드로이드 실행 파일은 같은 패키지에 속한 자바 클래스와 리소스 집합으로 프로세스와 반드시 대응되지 않는다.

즉, 응용 프로그램끼리 서로 기능을 공유할 수 있고 다른 프로그램의 구성 요소를 불러 같은 주소 공간에서 실행할 수도 있다.

안드로이드는 다음과 같은 4개의 컴포넌트를 이용한다.

1. 액티비티 - 사용자 인터페이스를 구성하는 기본 단위
2. 서비스 - 백그라운드에서 무한히 실행되는 컴포넌트
3. 브로드캐스트리시버(BR) - 시스템으로부터 전달되는 방송을 대기하고 신호 전달시 수신하는 역할
4. 콘텐트 제공자 - 다른 프로그램을 위해 자신이ㅡ 데이터 제공(데이터 베이스, 주소록 CP로 전달)

위 4가지는 서로 독립적으로 동작하며 상호 통신위해 인텐트(컴포넌트간 통신 수단으로 메세지에 대한 정보 가짐)가 필요하다.

안드로이 프로젝트 구성은 다음과 같다.

AndroidManifest.xml - 프로젝트 버전, 이름, 구성등의 정보를 가짐
src/Android.java - 응용 프로그램 동작 기술
gen/R.java - 프로젝트내의 개체에 접근하는 ID 정의, 이는 절대 편집 금지
Android Library 폴더 - 안드로이드 기본 라이브러리
assets - 각종 미디어 파일 저장
res/drawable - 이미지 저장
res/layout/main.xml - 응용프로그램 디자인
res/values/string.xml - 문자열 정의
default.properties - 빌드 타깃 명시