출처 : http://ldragon.tistory.com/4


 
 

Android에서 UI 구현은 보통 대부분 책에서도 XML 이용하여 꾸미는 방법만 설명되어 있다

XML 파일을 이용하는 방법은

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

다음과 같이 생성 프로젝트 res 폴더의 layout 폴더에 있는 xml 파일에서 작성이 가능하다. 이렇게 XML 작성 Java 코드에서 findViewById 이용하여(ex Button btn = (Button)findViewById(R.id.Button);) xml에서 작성한 UI 디자인을 사용할 있다.   

이렇게 UI XML 분리되게 되면 다음과 장점들을 가질  있다.

로직과 UI 파일단위로 분리할 있다.

소스코드 변경없이 리소스만 변경하여 UI 바꿀 있다.

Portrait / Landscape, 화면 해상도 , 언어별로 XML 파일을 따로 만들어두고 하나의 로직에 연결하여 사용 가능하다.

디자이너를 사용할 있다.

   

하지만 많은 책들에서는 이렇게 XML 이용한 UI 제작 방법만 설명되어 있지만 XML 쓰지 않고 java코드로도 정말 쉽게 UI 생성 가능하다는 것을 설명하겠다

 LinearLayout linear = new LinearLayout(this);
 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.FILL_PARENT,
    ViewGroup.LayoutParams.FILL_PARENT);
linear.setLayoutParams(params);
linear.setOrientation(LinearLayout.VERTICAL);

 

Button btn = new Button(this);
EditText etx = new EditText(this);

 

linear.addView(btn);

 

linear.addView(etx);

 

setContentView(linear);

이렇게 Layout 먼저 생성하고 안에 들어 Button이나 EditText 등을 생성 addView 해주면 된다.(너무 간단..) 

추가적으로 View 위에 원하는 곳에 Button 넣는 방법을 설명 하겠다.

XML 디자인 속성 값을 변경하여 View 위에 Button 올릴 수도 있지만 Java코드에서 UI 생성 View 위에 Button 올리기 방법은 다음 코드처럼 RelativeLayout 생성 위에 View 버튼을 넣고 Button 위치를 지정 해주면 된다.

 btn = new Button(this);
 RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(
    ViewGroup.LayoutParams.WRAP_CONTENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);
 buttonParams.topMargin = 115;
 buttonParams.rightMargin = 440;
 btn.setLayoutParams(buttonParams);

 

Posted by motolies
,