2010년 11월 1일 월요일

자원요소-위젯

화면에 배치하는 사용자 인터페이스 요소로서 Java의 프레임, 컨트롤 등과 유사하다.
레이아웃 내에 위젯들이 배치되는 형태로 대부분의 안드로이드 프로그램이 구성되며, 이들 요소가 단말기 화면에 나타난다.

TextView

화면에 텍스트를 그린다.

속성은 다음과 같다.
id 텍스트뷰의 이름으로서, 코드요소에서 텍스트뷰를 지칭할 때 이 태그에 지정된 이름을 사용한다.
text 텍스트뷰에 표시될 글자
layout_width
layout_height
lines 높이를 줄 수로 지정
ems 글꼴의 크기와 무관하게 텍스트뷰에 표시될 글자의 수를 지정
autoLink 링크형태로 표시. web,email,phone,map 사용 가능.

EditText

TextView에서 파생된 클래스이다.
사용자로부터 텍스트를 입력받을 수 있다.
TextView의 모든 속성을 상속한다.

유용한 속성들은 다음과 같다.
• hint 사용자가 입력을 시작하기 전에 표시되고 입력을 시작하면 사라진다.
• completionHint: 자동완성기능
• completionThreshold: 자동완성기능. 몇 개 글자가 표시되었을 때 목록을 표시할 것인지 지정.

Button
화면에 버튼 형태로 표시되는 컨트롤로, 클릭 후 액션을 수행하도록 하는데 기본적으로 사용된다.

CheckBox
체크 컨트롤을 보여줌. Java의 체크박스와 유사.

ex) 기본 XML 파일 및 Java 파일

<?xml version="1.0" encoding="utf-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This checkbox is: unchecked" />


public class CheckBoxDemo extends Activity
implements CompoundButton.OnCheckedChangeListener {
CheckBox cb;
@Override
public void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  setContentView(R.layout.main);
  cb=(CheckBox)findViewById(R.id.check);
  cb.setOnCheckedChangeListener(this);
}
public void onCheckedChanged(CompoundButton buttonView,
  boolean isChecked) {
  if (isChecked) {
  cb.setText("This checkbox is: checked");
  }
  else {
  cb.setText("This checkbox is: unchecked");
  }
}
}

RadioButton
체크 컨트롤을 보여줌. Java의 체크박스와 유사.

ex) 라디오 그룹 정의 XML 코드

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RadioButton android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rock" />
<RadioButton android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scissors" />
<RadioButton android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Paper" />
</RadioGroup>

Spinner
지정된 여러 항목 중에서 하나를 선택하도록 한다.

ex) ArrayAdapter를 이용하여 Spinner에 데이터 표시하기

//spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
 
    <TextView
android:id="@+id/selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Spinner android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
/>

</LinearLayout>

//SpinnerDemo.java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView;

public class SpinnerDemo extends Activity implements AdapterView.OnItemSelectedListener {
TextView selection;
String[] items={"lorem", "ipsum", "dolor", "sit", "amet",
"consectetuer", "adipiscing", "elit", "morbi", "vel",
"ligula", "vitae", "arcu", "aliquet", "mollis",
"etiam", "vel", "erat", "placerat", "ante",
"porttitor", "sodales", "pellentesque", "augue", "purus"};

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.spinner);

selection=(TextView)findViewById(R.id.selection);
Spinner spin = (Spinner) findViewById(R.id.spinner);

spin.setOnItemSelectedListener(this);
ArrayAdapter<String> aa=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(aa);
}
public void onItemSelected(AdapterView parent, View v,
int position, long id) {
selection.setText(items[position]);
}
public void onNothingSelected(AdapterView parent) {
selection.setText("");
}
}



ToggleButton
On/Off 스위치

DatePicker/TimePicker
날자/시간 선택

ProgressBar
진행상태 표시

SeekBar
사용자지정 진행상태 표시

RatingBar
별을 이용한 등급표시

Chronometer
시간흐름 표시

AnalogClock
아날로그 시계 표시

DigitalClock
디지털 시계 표시

ImageView/ImageButton

TextView, Button의 이미지용 컨트롤이라고 보면 된다.
xml에서 참조할 때는 android:src 속성을 사용한다.

ex) ImageView를 적용한 XML 파일

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:src="@drawable/molecule"
/>

댓글 없음:

댓글 쓰기