2011. 3. 21. 13:30 android App
[12-D2][UI 설계] EditText와 TableLayout
[12-D2][UI 설계] EditText와 TableLayout
[01] AbsoluteLayout Layout
- AbsoluteLayout: View가 x,y좌표에 의해서 배치, 레이아웃이 깨질 수 있고 화면의
구성요소가 서로 잘 맞아 떨어저야함으로 잘 사용되지 않는다.
안드로이드 SDK 1.5 R1부터 폐기 대상으로 분류되어 더이상 사용되지 않는다.
[02] TableLayout Layout
- 행과 열의 격자를 이용해 View의 배치.
- 아래의 레이아웃 특성을 조합하여 사용
android:stretchColumns="1" : 두번째 컴럼의 크기를 남는 공간으로 늘림(확장).
android:stretchColumns=" 늘리려는 column 번호(0~), *"
android:shrinkColumns=" 필요한 공간만 사용하고 줄이고자 하는 column 번호(0~), *"
android:stretchColumns="1" android:shrinkColumns="*": 모든 컬럼의 값을 전부
필요한 만큼만 사용하고 1번째 컬럼을 남은 공간으로 전부 확대
android:collapseColumns=" 숨기고자 하는 column 번호(0~), *"
android:layout_span=" 차지하려는 Column 수", 셀 합치기
android:layout_span="2": 컬럼 2개를 합침.
이름:[ ]의 경우 2번째 입력란을 확대함.
android:layout_marginTop="60px" : 뷰를 부모의 위쪽에서 일정 간격 떨어짐
android:layout_alignParentTop="true" : 뷰를 부모에서 상단에 배치
android:layout_centerHorizontal="true" : 뷰를 부모에서 수평 중앙에 배치
android:layout_alignParentRight="true" : 뷰를 부모에서 오른쪽에 배치
android:layout_alignParentLeft="true" : 뷰를 부모에서 왼쪽에 배치
android:layout_centerVertical="true" : 뷰를 부모에서 수직 중앙에 배치
android:layout_centerInParent="true" : 뷰를 수직, 수평의 중앙에 배치
android:layout_alignParentBottom="true": 뷰를 부모에서 하단에 배치
[04] EditText와 TableLayout 실습
1. 프로젝트 생성
- Project Type: Android Project
Project name: TableLayoutTest_4
Application name: TableLayoutTest_4
Package name: test.TableLayoutTest
Create Activity(Activity name): TableLayoutTest
Min SDK Version: 4
2. 문자열 리소스 정의
>>>>> res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="main">
<item name="android:textSize">10pt</item>
</style>
<style name="standard" parent="main">
<item name="android:textColor">#000000</item>
</style>
<style name="title" parent="main">
<item name="android:textColor">#00FF00</item>
</style>
</resources>
2. 문자열 리소스 정의
>>>>> res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">TableLayoutTest!</string>
<string name="app_name">TableLayoutTest</string>
</resources>
3. View(콘트롤) 생성 및 배치
>>>>> res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="fill_parent">
<TableLayout
android:id="@+id/TableLayout01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*" android:gravity="center_vertical"
android:padding = "50px">
<TableRow
android:id="@+id/TableRow00"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView
android:id="@+id/txv00"
android:text="패스워드를 입력하세요."
android:layout_span="3" android:gravity="center_horizontal"
style="@style/title" />
</TableRow>
<TableRow
android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn01"
android:text="1" style="@style/standard" />
<Button
android:id="@+id/btn02"
android:text="2" style="@style/standard" />
<Button
android:id="@+id/btn03"
android:text="3" style="@style/standard" />
</TableRow>
<TableRow
android:id="@+id/TableRow02"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<Button
android:id="@+id/btn04"
android:text="4" style="@style/standard" />
<Button
android:id="@+id/btn05"
android:text="5" style="@style/standard" />
<Button
android:id="@+id/btn06"
android:text="6" style="@style/standard" />
</TableRow>
<TableRow
android:id="@+id/TableRow03"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<Button
android:id="@+id/btn07"
android:text="7" style="@style/standard" />
<Button
android:id="@+id/btn08"
android:text="8" style="@style/standard" />
<Button
android:id="@+id/btn09"
android:text="9" style="@style/standard" />
</TableRow>
<TableRow
android:id="@+id/TableRow04"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<Button
android:id="@+id/btn10"
android:text="0"
android:layout_column="0" style="@style/standard" />
<Button
android:id="@+id/btn11"
android:text="*"
android:layout_column="1" style="@style/standard" />
<Button
android:id="@+id/btn12"
android:text="#"
android:layout_column="2" style="@style/standard" />
</TableRow>
</TableLayout>
<LinearLayout android:id="@+id/LinearLayout02"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:paddingLeft ="0px" >
<EditText
android:id="@+id/edt00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="PASS" android:editable="false"
android:lines="1"
android:text="@+id/edt00"
style="@style/standard"
android:password = "false" android:maxLength = "4"
android:focusable = "false"/>
<Button
android:id="@+id/btnDel"
android:text="DELETE"
style="@style/standard"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn13"
android:text="OK"
style="@style/standard"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
4. 이벤트 작성
>>>>> TableLayoutTest.java
package test.TableLayoutTest;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.util.Log;
public class TableLayoutTest extends Activity implements OnClickListener{
Button btn01;
Button btn02;
Button btn03;
Button btn04;
Button btn05;
Button btn06;
Button btn07;
Button btn08;
Button btn09;
Button btn10;
Button btn11;
Button btn12;
Button btnDel;
EditText edt00;
String str;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn01 = (Button)findViewById(R.id.btn01);
btn01.setOnClickListener(this);
btn02 = (Button)findViewById(R.id.btn02);
btn02.setOnClickListener(this);
btn03 = (Button)findViewById(R.id.btn03);
btn03.setOnClickListener(this);
btn04 = (Button)findViewById(R.id.btn04);
btn04.setOnClickListener(this);
btn05 = (Button)findViewById(R.id.btn05);
btn05.setOnClickListener(this);
btn06 = (Button)findViewById(R.id.btn06);
btn06.setOnClickListener(this);
btn07 = (Button)findViewById(R.id.btn07);
btn07.setOnClickListener(this);
btn08 = (Button)findViewById(R.id.btn08);
btn08.setOnClickListener(this);
btn09 = (Button)findViewById(R.id.btn09);
btn09.setOnClickListener(this);
btn10 = (Button)findViewById(R.id.btn10);
btn10.setOnClickListener(this);
btn11 = (Button)findViewById(R.id.btn11);
btn11.setOnClickListener(this);
btn12 = (Button)findViewById(R.id.btn12);
btn12.setOnClickListener(this);
btnDel = (Button)findViewById(R.id.btnDel);
btnDel.setOnClickListener(this);
edt00 = (EditText)findViewById(R.id.edt00);
str = "";
edt00.setText("");
}
@Override
public void onClick(View v) {
String val = "";
// TODO Auto-generated method stub
if(v.getId() == R.id.btnDel){
val = edt00.getText().toString();
int len = val.length();
if (len > 0){
val = val.substring(0, len-1);
}
str = val;
}else{
Button btn = (Button)v;
str = str + (String)btn.getText();
}
edt00.setText(str);
}
}
'android App' 카테고리의 다른 글
[13-2-D2][UI 설계] ListView, Adapter (0) | 2011.03.21 |
---|---|
[13-D2][UI 설계] Spinner, RadioGroup, RadioButton, CheckBox (0) | 2011.03.21 |
[11-D2][UI 설계] 지역화(국제화), ImageView, RelativeLayout, 한글 Encoding (0) | 2011.03.21 |
[10-D2][UI 설계] Style and Theme (0) | 2011.03.21 |
[09-D2][UI 설계] Widget Event, Widget(TextView(레이블), Button), LinearLayout (0) | 2011.03.21 |