반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] UI 요소 - View 본문
반응형
View
Containers
scrollView
- 상하 혹은 좌우로 스크롤 할 수 있게 해준다.
- 화면을 구성하는 요소가 화면을 벗어나야 한다.
- 상하좌우 하는 법 : ScrollView 구성 후 그 안에 HorizontalScrollView 구성(혹은 그 반대도 가능) 후 linear layout vertical 안에 horizontal 구성(혹은 그 반대)
- scroll View는 상하(y)로만 움직일 수 있고 horizontal은 좌우(x)로만 움직일 수 있다.
함수
- scrollX : scroll view의 X좌표를 가져온다
- scrollY : scroll view의 y좌표를 가져온다
- scrollTo(x좌표, y좌표) : 해당 좌표로 이동
- smoothScrollTo(x좌표, y좌표) : 코드를 통해서 어딘가로 이동할 때 해당 함수를 많이 사용한다. 애니메이션 효과가 포함된 scrollTo
- scrollBy(x좌표 이동 거리, y좌표 이동 거리) : 현재 위치에서 지정된 거리만큼 이동
- smoothScrollBy(x좌표 이동 거리, y좌표 이동 거리) : 애니메이션 효과가 포함된 scrollBy
listener
- OnScrollChangeListener
- 매개변수 : v(스크롤이 발생한 뷰), scrollX(이동된 X 좌표), scrollY(이동된 Y 좌표), oldXView(이동되기 전 X 좌표), oldYView(이동되기 전 Y 좌표)
- setOnChangeLister{매개변수 -> 실행문}로 사용하거나 inner Class 로 해당 리스너를 상속받아 오버라이딩을 사용해 작성할 수 있다.
Text
textInputLayout
- textInputLayout 생성 시 textInputEditText이 자동 생성됨
- hint
- 안내문구
- textInputLayout이랑 textInputEditText 둘 다 설정할 수 있지만 textInputLayout에만 설정하는 것을 권장한다.
- 다른 설정(counterEnabled: 글자 수, counterMaxLength : 최대 글자 수 등)은 textInputLayout에만 할 수 있다
- error 관련 부분은 코드로 설정해주는 것이 좋다.
- .editText는 null을 허용하기 때문에 null처리문을 넣어주는 것이 좋다(editText!=null일 경우에만 작동하게 하는 등)
함수
- error = "문자열" : 오류 문구 설정(문자열 자리에 문구 입력)
listener
- editText
- addTextChangedListener
- it에 입력된 문자열(null을 허용하는)이 들어옴
- TextWatcher로 대체 가능
- addTextChangedListener
Widget
Image View
- 사용 할 이미지는 방식에 따라 폴더를 달리 한다
- Bitmap 방식은 res/drawble 폴더
- Vector 방식은 res/mipmap 폴더
- 단말기 안에서 아이콘 크기를 늘릴 수 있는 기능이 생겨서이다.
- srcCompat : 보여 줄 이미지 지정
이미지 방식
- Bitmap
- 각 픽셀마다 각 색상에 대한 값이 들어가 있다.
- jpg, png, gif 등
- 장단점
- 장점 : 파일 용량이 작다
- 단점 : 확대나 축소 할 경우 이미지 자체가 뭉게지거나 계단형식으로 보일 수 있다.
- Vector
- 대표적인 것은 svg(내부가 xml 양식으로 되어 있음)
- 내부 코드를 분석해서 그림을 그리기 때문에 해당 코드를 해석하는 프로그램이 필요하다.
- 이미지를 그리기 위한 데이터(점들의 좌표 등)나 코드가 들어가져 있다.
- 이미지를 그리기 위해 메모리와 작업이 비트맵 방식보다 많기 때문에 처리과정이 더 오래 걸린다.
- 안드로이드 스튜디오에서는 svg 이미지를 만들 수 있는 도구를 제공하고 있다.(하지만 비추)
- 장단점
- 장점 : 확대나 축소를 해도 뭉게지거나 계단형식이 보이는 현상이 발생하지 않는다.
- 단점 :같은 사이즈의 동일한 이미지를 그릴 때 단순한 것일 때는 용량이 작지만 복잡한 이미지를 그릴 때는 용량이 확 늘어난다.
함수
- setImageResource(R.drawble 혹은 mipmap.이미지이름) : drawble, mipmap 폴더에 있는 이미지 지정
Component
Button
- CompoundComponent : toggleButton, checkBox, RadioButton, Switch, checkedTextView, chip
checkBox
- checked : 선택 여부 설정(true 일 경우 체크)
- 함수
- isChecked : 선택 여부 설정
- toggle : 체크 상태 반전 (체크 안된 상태 -> 된 상태, 체크 된 상태 -> 안된 상태)
- 리스너
- setOnCheckedListener{buttonView, isChecked -> 실행문}
- 체크박스의 선택 상태가 변경되었을 때 값 전달
- isChecked 안에 선택 상태에 대한 값 전달
- setOnCheckedListener{buttonView, isChecked -> 실행문}
Radio
- 하나의 그룹 안에서 무조건 하나만 선택할 수 있도록 하는 것
- radioGroup
- radioGroup을 만들고 그 안에 radio button들을 넣기
- radioGroup은 반드시 id가 있어야 한다.
- checkedButton : 체크 상태로 설정 할 radio Button 선택
- 함수
- check(R.id.라디오버튼아이디) : 해당 라디오 그룹 내 있는 라디오 버튼 아이디를 통해 선택
- radioButton
- checked : 이거 사용하지 말고 radioGrooup의 checkedButton으로 설정
- toggle을 사용하지 않는다 : 체크 박스는 다수를 선택할 수 있기에 반전시키는 토글이 의미가 있었는 데 라디오의 경우 하나만 선택하는 것이기 때문에 의미가 없다.
etc
- 리스너가 같은 경우 inner Class 로 해당 리스너를 상속받아 오버라이딩을 사용해 작성하는 것이 코드의 간결성을 위해 좋다.
- 맥 키보드에서 backtick(`) 입력 : https://hothoony.tistory.com/1305
- emulator 단말기 초기화 : device manager - 사용하는 emulator 옆 점 세개 - wipe data
- 속성(Attributes) 중 text 밑 🔧text는 디버깅 텍스트 설정하는 거라 디자인 할 때만 보이고 실행 시 안보여서 신경쓰지 않아도 됨
'Android' 카테고리의 다른 글
[Android] UI 요소 - View 2 (0) | 2023.06.14 |
---|---|
[Android] Compound Component (0) | 2023.06.12 |
[Android] LogCat & UI 요소 - Widget (0) | 2023.06.08 |
[Android] UI 요소 (1) | 2023.06.07 |
[Android] Application 개발의 개요 (0) | 2023.06.07 |