NOW OR NEVER

[Android] UI 요소 - View 본문

Android

[Android] UI 요소 - View

LAURA 2023. 6. 11. 12:58
반응형

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로 대체 가능

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 안에 선택 상태에 대한 값 전달

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
Comments