SW 배움터/안드로이드

안드로이드2: Activity의 화면 설정 방법

kusson 2017. 4. 11. 11:33
반응형
728x170

Activity의 화면을 설정하는 몇가지 방법

 

 Activity는 쉽게 말해 우리가 스마트폰으로 보는 하나의 화면, 즉 앱이든 뭐든 스마트폰

에 표시되는 하나의 화면을 Activity라고 생각하면 된다. 너무 쉬워서 좀더 어렵게 설명하면(?)

 Activity는 안드로이드에서 하나의 작업(활동)을 담당하는 컴포넌트 클래스 중의

하나로 안드로이드가 제공하는 Activity라는클래스를 상속받는다. Activity는

사용자 인터페이스 화면을 가질 수 있는데 모든 애플리케이션은 적어도 하나이상의

Activity가 있어야 한다.

 이클립스와 같은 안드로이드 통합환경에서는 몇번의 클릭만으로 하나의 Activity 화면과 하나의 xml 파일이 만들어 지는데 단순한 앱을 개발 할때는 이것만으로 충분하나 게임이나 그림

그리기 앱등의 경우에는 좀 더 특수한 방법을 알아야 한다.

 보통 안드로이드에서는 두 가지의 사용자 인터페이스 작성 방법을 많이 쓴다.

첫번째가 xml 파일로 사용자 인터페이스를 작성하는 방법이고 두번째는 코드로 사용자

인터페이스를 작성하는 방법이다.

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.activitytest.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

 

위의 코드가 이클립스를 이용해 몇번의 클릭만으로 작성한 빈화면을 나타내는 xml 파일이다.

 

 

 

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);          // activity_main xml파일을 불러들임.
    }  
}
이제 이전의 activity_main xml 파일을 메인 자바 화면으로 불러들이면 스마트폰화면에

아무것도 없는 빈 화면만 표시되는 하나의 앱이 완성된 것이다. 이러한 방식으로 유저인터페이스가 작성된다. 유저 인터페이스를 작성하는 몇가지의 방법을 소개한다.

 

1. setContentView( ); 에 layout xml 파일을 지정하는 방법

   ex) seContentView(R.layout.main);                              //main이 xml파일명 일 경우

 

2. Activity를 main과 sub로 분리하고 sub_Activity를 띄우는 방법

   ex) public class MainActivity extends Activity{

          MySubView view;

 

         @Override

            protected void onCreate(Bundle savedInstanceState){

             super.onCteate(savedInstanceState);

             view = new MySubView(this);

             setContentView(view);

            }

     }

 

 3.layout xml 파일없이 mainActivity 자체를 객체로 만들어서 뛰우는 방법

   ex) class MyView extends View{

          .....

           

          public class myView extends Activity{

            public void onCreate(Bundle savedInstanceState){

              supper.onCreate(savedInstanceState);

                MyView w = MyView(this);

                  setContentView(w);

            }

          }

       }

 

 4. MainActivity에서 별다른 언급없이 layout xml 파일내에서 subView를 지정하는 방법

     <com.example.android.MyView.testView

       .................

           />

 

전통적으로 개발자들은 UI를 작성할 때 이클립스의 비주얼 도구를 이용하지 않았다. 그것은

아직 사용하기에 불편하고 기술적으로도 좀 미숙한 상태라서 그런것이라고 생각한다. 그러나

최근의 버전은 비주얼 도구를 사용하여 마우스로 컴포넌트를 드래그해서 화면에 배치해도

큰 무리없이 사용할 수 있는 수준까지 발전했다. 물론 아직까지는 완벽하지 않지만 점점 그

기능이 확대되고 버그가 잡혀가고 있으므로 곧 좋은 에디터 도구로 자리잡을 것으로 생각한다.

 따라서 일단은 비주얼 도구로 자신이 생각하는 layout을 화면에 배치한 다음 xml 파일을

이용해 수정하는 것이 좋을 것이다.

반응형
그리드형