본문 바로가기
일상생활 이야기/안드로이드 스튜디오 독학하기

안드로이드 스튜디오 독학하기 22일째

by 인터넷떠돌이 2017. 3. 18.
반응형

안녕하세요?


이번 포스팅에서는 안드로이드 스튜디오를 공부하기 위해서 [Do it 안드로이드 앱 프로그래밍]책에서 나와있었는 [자바 코드에서 화면 구성하기]방법을 실습해 본 것입니다.


우선 이 방법은 사용자가 입력한 데이터나, 파일에서 읽어들인 데이터, 혹은 네트워킹을 통해 서버에서 들어온 데이터에 의해서 화면의 구성을 바꾸고 싶을 때 사용을 한다고 합니다. 이 방법이 유용한 이유는 XML보다 자바 코드를 이용해서 수정을 하는 것이 이런 상황에서는 더 효율적이라고 합니다.


우선은 새로운 프로젝트를 생성하고 나서, MainActivity.java를 클릭하고서 Ctrl + C를 눌러서 복사를 시도하도록 합니다. 그리고 바로 Ctrl + V를 눌러서 붙여넣기를 시도하면, 아래의 스크린샷과 같은 화면이 나오게 됩니다.



우선 New name항목에 LayoutCodeActivity라고 입력을 해서, 새로운 java파일을 생성하도록 합니다. 



붙여넣기 결과 전에는 없던 새로운 java파일이 생성이 된 것을 볼 수 있습니다. 이렇게 새로 java파일이 생성이 되면, 이제는 LayoutCodeActivity.java에 코딩을 시작하기 시작합니다.



위 스크린샷처럼 코딩을 하는데, 여기서 몇 가지 중요한 것을 집어넣고 가자면, 제일 첫 줄은 다음과 같은 의미를 내포하고 있습니다.


LinearLayout 변수이름1번 = new LinearLayout(this);


제가 자바공부를 본격적으로 하지 않아서 제대로 알 수는 없지만, 그래도 해본결과 여기 구문은 리니어 레이아웃인 변수이름1번을  선언하고 그걸 여기다가 만들어라 하는 의미를 내포하고 있습니다.


변수이름1번.setOrientation(LinearLayout.VERTICAL);


여기서는 변수이름 1의 Orientation이라는 Property를 세로방향인 VERTICAL로 설정하라는 의미를 내포하고 있습니다.


LinearLayout.LayoutParams 변수이름2번 = new LinearLayout.LayoutParams(넓이, 높이);


여기서는 변수이름2번을 지정하고, 여기서 이 변수이름2번은 넓이는 얼마이고, 높이는 얼마다 라는 것을 설정하는 구문이 됩니다.

다만 제 실력이 부족해서, 그냥 MATCH_PARENT나 WRAP_CONTENT라고 하기만 하면 될것 같지만, 여기서는 이렇게 사용을 하고 있습니다.


LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT


이렇게 설정이 된 것을 알수 있습니다. 그리고 이어지는 코드는 버튼을 하나 추가해서 설정을 지정하는 구문이 됩니다.


Button 버튼ID = new Button(this);

버튼ID.setText("아무 문구");


여기서는 버튼ID가 있는 버튼을 하나 지정하고, 그 버튼에 "아무 문구"를 넣으라는 의미가 됩니다. 즉, 버튼에 표시가 될 글자를 지정하는 코드가 됩니다.


버튼ID.setLayoutParams(변수이름2번);


여기서는 버튼ID의 속성에 해당하는 파라미터를 변수이름2번으로 지정을 하라는 의미가 됩니다. 그리고 변수이름2번이 무엇인지 위에서 설정을 해 두었기 때문에, 그대로 버튼의 넓이와 높이가 결정이 되게 됩니다.


변수이름1번.addView(버튼ID);


이 코드는 변수이름1번이라는 레이아웃에 버튼ID라는 버튼을 보이도록 설정을 하라는 의미가 됩니다.


마지막으로 다음과 같은 코드를 추가하게 됩니다.


setContentView(변수이름1번);


새로 만든 레이아웃을 화면에 보이게 하라는 의미가 됩니다. 그런데 이것만 한다고 해서 완료가 되는 것이 아니라, 이제 AndroidManifest에서 다음과 같은 설정을 변경해야 합니다.



먼저 표시가 되어 있는 .MainActivity라고 되어 있는 부분이, 처음에 보여질 메인 액티비티를 지정하는 부분입니다. 여기를 아래와 같이 바꿉니다.



처음에 새로 추가한 LayoutCodeActivity.java의 이름을 입력해서 .LayoutCodeActivity를 입력하도록 합니다.



우선 프로젝트가 생성된 이래 전혀 Activity_main.xml을 전혀 건드리지 않았는 것을 보여주고 있습니다. 이처럼 기존에 하던 것과는 다르게, Design탭에서는 아무런 작업을 하지 않고, 오로지 java에서 코딩만을 하였습니다.


이제 USB에 연결이 된 스마트폰에서 실제로 어떻게 나오는 지 여부를 살펴보도록 하겠습니다.


버튼을 추가한 적이 없었고, 오로지 코딩만을 했는데, 제대로 추가가 된 것을 볼 수 있습니다. 그리고 지정한 대로 넓이는 Parent에 맞추도록 하였고, 높이는 글자의 크기에 맞도록 조정이 된 것을 볼 수 있습니다. 이런 식으로 지정이 되었습니다.


이것으로 이번 포스팅에서는 자바 코드를 통해서 화면을 구성하는 방법을 실습해 보았습니다. 하지만 이게 전부는 아니고 뒤에 남아 있는 것이 많이 있지만, 그래도 이런 방법을 통해서 오로지 코드만으로 화면의 구성을 바꾸는 방법이 있다는 것을 알 수 있었습니다.


여기에 나온 이 예제를 어떻게 응용한다면, 무언가 더 나은 앱을 만드는데 기여를 할 수 있으리라 생각을 합니다.

반응형