Hello, Android!
04. 뷰 본문
안드로이드 화면에 텍스트, 이미지, 버튼 링크 등등 다양한 뷰 를 이용하여 화면을 만든다.
텍스트를 보여주고, 텍스트를 입력받고, 이미지를 보여주고, 버튼을 만들어 클을 받는등
어플리케이션에서 눈에 보여지는 모든것은 뷰를 통해 이루어진다.
Object
|
| - - -> view - - -> TextView - - -> AutoCompleteTextView
| |
| | - - - - - -> Button - - - -> CompoundButton - - - -> CheckBox
| | - - - - - -> Chronometer |- - -> RadioButton
| | - - - - - -> DigitalClock |- - -> ToggleButton
|
| - - - - - -> ImageView - - - - - -> ImageButton
| - - - - - -> SurfaceView - - - - - -> GLSurfaceView
| | - - - - - -> VideoView
| - - - - - -> ProgressBar - - - - - -> ProgressBar - - -> SeekBar
|
|
| - - - -> ViewGroup
위와 같이 모든 클래스의 부모 클래스인 Object의 자식으로 View클래스가 존재하고
그 View클래스의 자식으로 텍스트뷰, 이미지뷰, 프로그래스바, 뷰그룹은 자식으로 존재한다.
그럼 이러한 뷰들을 실제로 어떻게 사용해야 할까?
우선 필요한 뷰를 넣을 액티비티의 XML파일의 레이아웃 영역 내에 작성을 하면된다
위의 예제를 보면 2번줄에서 ConstraintLayout 이라는 것이 시작되고 19번줄에서 레이아웃의 끝을 나타내고
그 안에 9~17번줄까지 텍스트뷰를 그리고 있다.
텍스트뷰가 아닌 버튼, 체크박스, 라디오버튼이 필요하면 레이아웃 영역 내에
<Button/>, <CheckBox/> 라고 적어서 그려주면 된다.
그런데 텍스트뷰 내의 10~17번줄에서 텍스트뷰에 대한 많은 설정들이 존재하는데 이 설정에 대해서 알아보자
우선 10~13번줄은 텍스트뷰의 크기, 텍스트내용, 텍스트뷰의 ID에 대한 설정을 하고 있고
14~17번줄은 체크박스의 배치 즉 화면 내에서 보여질 위치에 대한 설정을 하고있다
10,11 번줄 layout_width, layout_height값을 설정하고 있다.
layout_width는 해당 뷰의 가로 길이를 설정하며 layout_height는 높이를 설정한다
지금은 wrap_content 라고 주어져 있는데, 이는 TextView의 내용에 맞춰 크기를 주겠다는 의미이다.
wapt_content이외에 match_parent 라고 값을 지정하면 부모 레이아웃의 크기와 동일한 값을 가지게 된다.
wapt_content이외에 match_parent가 아닌 임의의 값을 지정할때는 sp, dp, px등 여러 단위를 이용하여 크기를 줄수있다.
text항목은 텍스트뷰에서 출력할 텍스트를 지정하게된다
id는 뷰에 id를 지정하게된다.
각각의 뷰에 id를 지정함으로써 자바에서 뷰에 접근하는것이 가능하게 된다.
이와같이 findViewById를 통해 접근하고자 하는 id를 지정하여 해당 뷰에 접근이 가능하다.
위 코드에서는 id가 text인 텍스트뷰를 tv변수를 통해 접근하고 있다.
텍스트뷰에서 유용한 함수로는 setText와 getText가 있는데 set을 통해 텍스트뷰의 텍스트 내용을 변경해주고
getText를 통해 텍스트뷰의 텍스트 내용을 받아올수 있다.
'Android' 카테고리의 다른 글
안드로이드 shared preferences (0) | 2020.05.17 |
---|---|
05. 인텐트, 뷰 in kotlin (0) | 2019.03.11 |
03. 인텐트 Intent (0) | 2019.03.07 |
02. 액티비티 Activity (0) | 2019.03.05 |
01. 안드로이드 4대 구성요소 (0) | 2019.03.04 |