Lumpy Space Princess - Adventure Time
공부/Android

[Android] Palette 항목 (태그) - View, TextView, ImageView, WebView, VideoView, CalendarView, ProgressBar, SeekBar, RatingBar, SearchView, SurfaceView, Divider

yaebb_82 2022. 5. 16.

 

 

Widgets : 각종 다양한 위젯들이 존재

* 위젯은 뷰 중에서 일반적인 컨트롤의 역할을 하는 것

** 위젯은 애플리케이션 내부에 있는 소형 애플리케이션 같은 느낌으로, 주기적으로 업데이터를 받는 장점이 있음

 

 

1) <View> : View

- 사용자 인터페이스 구성요소의 기본 빌딩 블록을 나타냄

- 일반적으로 컨트롤이나 위젯으로 불리는 UI 구성요소 (사용자 눈에 보이는 화면의 구성요소)

- 그리기 및 이벤트 처리 담당

- 위젯의 기본 클래스

 

- 직접 서브 클래스 : TextView, ViewGroup, ProgressBar, ...

- 간접 서브 클래스 : Button, CheckBox, CalendarView, ...

 

 

2) <ImageView> : ImageView

- 이미지를 출력해주는 위젯

 

** scaleType

- android:scaleType = "center"

  : 이미지 원본 크기 및 비율 유지 / 이미지의 중앙을 ImageView에 맞춤 / 이미지가 ImageView보다 클 경우,

    ImageView를 넘어간 영영의 이미지가 짤려서 보여짐

- android:scaleType = "centerCrop"

  : 이미지 비율 유지 / 이미지의 width, height 중 짧은 쪽을  꽉 차게 출력 / 이미지가 ImageView보다 클 경우,

    ImageView를 넘어간 영역의 이미지가 짤려서 보여짐

- android:scaleType = "centerInside"

  : 이미지 비율 유지 / 이미지의 width, height 중 긴 쪽을 꽉 차게 출력 / ImageView의 남은 공간은

    background 색으로 채워짐 / 이미지의 크기 < ImageView] 일 경우, 이미지 크기는 유지

- android:scaleType = "fitCenter"

  : [이미지의 크기 < ImageView] 일 경우, 이미지 크기는 ImageView의 크기에 따라 달라짐

- android:scaleType = "fitStart"

  : 이미지 비율 유지 / 딱 맞게 출력 / 왼쪽 상단을 기준으로 정렬

- android:scaleType = "fitEnd"

  : 이미지 비율 유지 / 딱 맞게 출력 / 우측 하단을 기준으로 정렬

- android:scaleType = "fitXY"

  : 이미지 비율 상관 X / 딱 맞게 출력 / ImageView 각 면에 꽉 차게 출력

- android:scaleType = "matrix"

  : 이미지 크기, 비율 유지 / 왼쪽 상단 기준으로 정렬 / 미지가 ImageView보다 클 경우,

    ImageView를 넘어간 영영의 이미지가 짤려서 보여짐

 

 

3) <WebView> : WebView

- 안드로이드 앱 내에서 웹 페이지를 띄우는 위젯

- 앱 내에서 호출해서 반응형 및 하이브리드 형태의 앱을 개발하는 데에 유용

- 사용하려면 manifest에 "android.permission.INTERNET"을 줘야 함

 

 

4) <VideoView> : VideoView

- 다양한 자원에서 영상을 불러올 수 있는 동영상 재생 위젯

- 멀티미디어 재생을 위한 UI인 MediaController(재생, 정지, 빨리감기, 되감기, Progress Slider 포함)를 쉽게 연결할 수 있음

- 기본적으로 제공하는 기능들이 많은 것이 장점

- 사용하려면 manifest에 "android.permission.INTERNET", "android.permission.WAKE_LOCK"을 줘야 함

 

 

5) <CalendarView> : CalendarView

- 스크롤이 가능한 달력을 보여주는 위젯

- 기본 속성 : dateTextAppearance, firstDayOfWeek(제일 왼쪽의 첫 요일 / 1 = 일요일 : 기본), focusedMonthDateColor, maxDate(달력에 표시할 최대 숫자 / 01/01/2100 : 기본), minDate(달력에 표시할 최소 숫자 / 01/01/1900 : 기본),  selectedWeekBackgroundColor, showWeekNumber(왼쪽에 주차를 표시할지 여부 / true : 기본), shownWeekCount, unfocusedMonthDateColor, weekDayTextAppearance, weekNumberColor, weekSeparatorLineColor(주 사이의 구분선)

 

반응형

 

6) <ProgressBar> : ProgressBar

- 앱 내에서 어떠한 작업이 수행될 때, 그 작업의 진행 상태를 시각적으로 보여주기 위한 위젯 (원 모양)

- style에서 Horizontal로도 줄 수 있다. (막대 모양)

- 두 가지 모드 지원

  : 불확정적 상태 표시 모드 (단순한 움직임으로 작업 진행 표시, 기본)

<ProgressBar
   android:id="@+id/indeterminateBar"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"/>

  : 확정적 상태 표시 모드 (명확한 수치 또는 값 지정하여 진행 표시)

 <ProgressBar
   android:id="@+id/determinateBar"
   style="@android:style/Widget.ProgressBar.Horizontal"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:progress="25"/>

 

 

7) <SeekBar> : SeekBar

- 사용자가 범위 내에서 값을 선택할 수 있도록 하는 위젯

- 음량 조절, 밝기 조절, 이미지 필터 적용, 동영상 재생 등 다양하게 사용됨

 

 

8) <RatingBar> : RatingBar

- SeekBar와 ProgressBar의 확장 버전

- 별 모양을 통해 평점, 점수, 등급 등을 매길 때 사용하는 위젯

- 기본 속성 : isIndicator(false일 때 사용자가 별표를 터치 또는 드래그를 통해 변경 가능 / false : 기본), numStars(화면에 표시되는 별의 개수), rating(최초 평점), stepSize(평점 변경 단위)

 

* 주의할 점!

: layout_width를 match_parent로 주게 되면, 크기가 자동으로 조절되면서 별점의 개수도 늘어날 수 있음

 

 

9) <SearchView> : SearchView

- 사용자가 검색어 입력 후 search provider에게 검색을 요청할 수 있는 UI를 제공

- 기본 속성 : iconifiedByDefault, imeOptions, inputType, maxWidth, queyHint(입력한 글자가 없을 때 힌트 제공)

 

 

10) <TextureView> : TextureView

- 라이브 비디오 스트림이나 비디오, Open GL 장면과 같은 콘텐츠 스트림을 표시할 때 사용

- SurfaceTexture를 사용하여 콘텐츠를 렌더링할 수 있음

- 별도의 창을 만들지 않고, 보통의 뷰처럼 작동함

 

 

11) <SurfaceView> : SurfaceView

- View를 상속받는 클래스

- 그래픽 처리가 빠른 View

 

 

12) <View> : Horizontal / Vertical Divider

- background에 "?android:attr/listDivider"를 주면 Divider를 생성할 수 있음

 

 

 

반응형

댓글