[Android] Palette 항목 (태그) - View, TextView, ImageView, WebView, VideoView, CalendarView, ProgressBar, SeekBar, RatingBar, SearchView, SurfaceView, Divider
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를 생성할 수 있음
댓글