모바일/android

[Android_기초] wrap_content, match_parent 차이와 id 정의

hatch 2021. 8. 14. 13:57
728x90
반응형

#210814#안드로이드스튜디오#앱제작

 

1. 오늘 학습한 내용

1) .xml : 화면을 꾸미는, 정적인 / .java : 내부 활동, 동적인

 

2) wrap_content / match_parent 차이점

 a. wrap_content : 폭과 높이가 내용에 꼭 맞게 설정됨 (글자 크기에 맞춤)

 b. match_parent : 자신의 부모에 폭이나 높이를 맞추는 것 (부모 레이아웃에 맞춤).

 

3) id 정의

 a. xml에서 id를 정의하고 Main.java에서 id 선언 후, 내부 프로그램 코딩.

 b. 형식: android:id = "@+id/(id 이름)"

 c. 이때, @기호는 id를 리소스(구체적으로 R.java)에 정의하거나 참조한다는 뜻이며 무조건 붙여야 함.

     +기호는 ID를 새로 정의한다는 뜻인데 처음 정의할 때만 붙이고 참조할 때는 붙이지 않는다.

 d. XML 문서에서 ID를 대입하면 이 이름이 R.java에 정수 상수로 정의된다.

  ㄱ. R.java(무슨 말인지 모르겠지만 일단 기록해둔다.)

더보기

① 목적 : 개발을 하다보면 수백 개의 리소스가 만들어지는데, 코드 영역에서 이를 식별할 방법이 필요합니다.

이를 도와주기 위한 파일이 R.java입니다. R.java 파일은 툴이 자동으로 만들어줍니다.

>> 안드로이드에서 자동으로 리소스 관리해주는 기능. 리소스 관리자 R.java.

 

② 작동원리

> 이미지 삽입 / 레이아웃 생성 등 모든 리소스의 작업들이 "R"클래스 내부에 자동으로 아이디 생성하게 됨.

> 프로그래머들은 리소스 아이디로만 간편하게 사용 가능해짐.

(직접 리소스 가지고 올 필요 없음!)

 

③ 코드에서 보이는 연결점

> 초기 화면 작동시키는 setContentView(R.layout.activity_main);

> 레이아웃의 뷰를 가져와 사용하는 (아이디 이름) =  findViewById(R.id.아이디 이름);

 

기타

> 이 파일을 열어보면 단순하게 int 형 변수만 선언되어 있는데, 이는 res폴더의 리소스들을 식별하기 위한 변수임.

> R.java에서 각각의 리소스를 내부 클래스명인 string, drawable, layout 등으로 구분하고 있고, 각각의 변수는 대부분 파일명을 이용함.

> 이런 이유로 res 밑에 임의의 폴더를 생성하면 안 됨. 리소스 파일명도 자바 명명규칙을 위배 불가.

   또한 리소스 파일명에 대문자를 사용할 수 없습니다.

 

 

4) onCreate

 a. Main.java에서 쓰는 것, 초기 화면라고 생각.

 b. setContentView(R.layout.(레이아웃이름)) : 해당 레이아웃 출력(현재는 메인.xml).

 c. setOnClickListener : 클릭시 작성한 코드가 실행되게 함.

>> 블로그의 글, [Android_기초] 이벤트 처리 방법

 

 d. (참고) 활동수명주기와 연관

 >> 안드로이드 스튜디오 기술 문서

 

 

2. 기타

1) constraintlayout 대신 Linearlayout 쓰는 중. 각각의 특성과 차이, 장점들을 알고 싶음.

2) html 주석처리 <!-- -->

c언어, 자바,.. 주석처리

// (한줄 주석) 혹은 /* (다중 주석) */