2018. 1. 23. 14:37ㆍ안드로이드
#1 안드로이드 스튜디오로 안드로이드 앱 만들기 - 개발 환경 구축
#2 안드로이드 스튜디오로 안드로이드 앱 만들기 - 개발 디렉토리와 파일 구조
#3 안드로이드 스튜디오로 안드로이드 앱 만들기 - 액티비티(Activity) 뷰(View) 구조
안드로이드에서 UI를 작성하는 방법은 두가지가 있다. 액티비티의 자바코드로 작성하는 방법과 자바코드를 이용하지 않고 레이아웃 XML에서 작성하는 방법이다.
그럼 두 가지의 방법으로 다음처럼 간단하게 버튼 두개를 만들어 볼 것이다.
자바 코드로 화면 구성
화면을 자바코드로 구성하는 것은 레이아웃XML 파일을 만들지 않고 자바코드로 모든 뷰를 직접 생성하는 것이다. 이렇게 준비한 뷰를 setContentView() 함수의 매개변수로 넘겨서 화면을 출력한다.
새 이름으로 모듈을 하나 만든다. 안드로이드 스튜디오에서는 모듈이 앱의 단위이며, 새로운 모듈을 만든다는 것은 새로운 앱을 만드는 것과 같은 의미이다. 새 모듈을 추가하려면 [File - New - New Module]를 선택한다
[New Module] 창이 열리면 'Phone & Tablet Module'을 선택하고 Next 한다.
다음 화면에서 Applecation/Library name 부분에 "Ui_test"라고 입력하고 Next 한다.
다음 화면에서 액티비티 타입을 'Empty Activity'로 선택하고 Next 한다.
다음 화면은 액티비티와 액티비티를 위한 레이아웃XML 파일명을 입력하는 곳이다. 이 화면에서 중요한 부분이 Source Language 부분이다. java로 된 것을 꼭 확인하자. 코틀린으로 해도 되는데 코틀린이 뭔지 모른다면 일단 java로 하자.
그럼 이제 이렇게 만들어진 Ui_test 모듈에 자동으로 만들어진 MainActivity.java 파일을 작성한다.
소스를 작성하기에 앞서 안드로이드 스튜디오 자동 임포트(Auto Import) 설정을 해두면 정말 편하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linear = new LinearLayout(this); Button bt = new Button(this); bt.setText("Button 1"); linear.addView(bt); Button bt2 = new Button(this); bt2.setText("Button 2"); linear.addView(bt2); setContentView(linear); } } | cs |
그럼 이제 <Run>을 눌러 실행 해보자.
이렇게 실행 될 것이다. 이처럼 앱의 화면 구성을 자바코드로 작성하면 레이아웃 XML 파일은 작성하지 않아도 된다.
레이아웃 XML로 화면 구성
자바코드에서 UI를 구성하지 않고 레이아웃 XML 파일을 이용해 UI를 구성하는 방법이다.
다음처럼 액티비티를 추가한다 [New - Activity - Empty Activity] 메뉴를 선택한다.
만들때 'Launcher Activity' 체크 박스를 선택하자. Launcher Activity를 선택하면 다른 액티비티와 상관없이 독립적으로 실행이 가능하여 테스트가 쉽다.
이제 액티비티를 만들때 함께 만들어진 res/activity_main2.xml 파일을 작성해보자. 위에서 자바코드로 작성했던 화면과 동일한 화면을 레이아웃 XML로 작성 해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2"/> </LinearLayout> | cs |
레이아웃 XML 파일에서 작성할 때는 뷰 클래스명을 XML의 태그명으로 작성하고, 필요한 속성을 XML attribute로 지정하여 작성하면 된다.
즉, 화면에 출력하려는 버튼의 클래스명이 Button이면 레이아웃 XML에서는 <Button/> 태그로 명시하면 된다.
현재 Ui_test 모듈에 액티비티가 하나 이상 있지만, 앞에서 신규 액티비티를 추가할 때 'Launcher Activity' 체크박스를 체크해 두었으므로 Main2Activity.java 파일에서 바로 실행하면 된다.
그럼 여기서 이런 질문이 생길 수 있다.
Q. UI를 구성할 때 자바코드로 구성하는 것과 레이아웃 XML을 이용해서 작성하는 것 중 어느 방법이 더 좋은가 ?
A. 이 부분은 개발자의 취향이다. 다만 UI를 자바코드로 작성하면, 코드가 너무 길어지는 문제가 생긴다 안그래도 코드에는 UI뿐만 아니라 각종 이벤트 및 로직이 들어가 있는데 UI때문에 코드가 더욱 길어지는걸 반기는 개발자는 없으리라 여긴다. 결국, UI를 레이아웃 XML로 작성하여 자바코드 부분을 그만큼 줄여주는게 효율성면에서 효과적이라고 생각한다.
'안드로이드' 카테고리의 다른 글
#6 안드로이드 스튜디오로 안드로이드 앱 만들기 - 뷰(View)의 계층구조 (0) | 2018.01.26 |
---|---|
#5 안드로이드 스튜디오로 안드로이드 앱 만들기 - 뷰(View)의 기초 속성 (0) | 2018.01.23 |
#3 안드로이드 스튜디오로 안드로이드 앱 만들기 - 액티비티(Activity) 뷰(View) 구조 (1) | 2018.01.23 |
#2 안드로이드 스튜디오로 안드로이드 앱 만들기 - 개발 디렉토리와 파일 구조 (0) | 2018.01.19 |
안드로이드 스튜디오로 안드로이드 앱 만들기 - 개발 환경 구축 (0) | 2018.01.16 |