속성 |
설명 |
matrix |
행렬을 사용하여 스케일링한다. 디폴트 단위 행렬일 때는 좌상단에 스케일링하지 않은 채로 출력된다. |
fitXY |
가로, 세로 모두 확장하여 뷰의 크기를 다 채우며 종횡비를 유지하지 않는다. |
fitStart |
종횡비를 유지하여 스케일링하며 왼쪽, 위쪽에 놓는다. |
fitCenter |
종횡비를 유지하며 스케일링하며, 중앙에 놓는다. |
fitEnd |
종횡비를 유지하여 스케일링하며 오른쪽 , 아래쪽에 놓는다. |
center |
이미지를 중앙에 놓으며 스케일링하지 않는다. |
centerCrop |
종횡비를 유지하며 스케일링하며 뷰의 크기 이상으로 채운다. 따라서 이미지 일부가 잘릴 수 있다. |
centerInside |
종횡비를 유지하여 스케일링하며 뷰의 크기 이하로 채운다. 뷰가 더 작으면 이미지 축소가 발생한다. |
스케일링(Scaling) : 이미지의 표시를 위한 크기변환을 뜻한다.
스케일타입 없이, width와 height만 조정
1번째 그림: width(100px), height(50px)의 기본이미지
2번째 그림 : width(300px), height(100px)을 주었다. (즉, 가로 3배 세로 2배)
이 경우 더 작은 비율쪽(height)으로 이미지를 확장하여 가득 채운다.
비율을 맞추지 못한 쪽(width)로 여백이 생긴다.
3번째 그림 : width(50px), height(100px)을 주었다. 위에서 처럼 더 작은 비율쪽으로
이미지를 확장한다고 했으니 width가 절반으로 줄어들어(1/2)든다.
따라서 비율을 맞추지 못한 세로(height)로 여백이 생긴다.
android:scaleType만 서로 다르게 준 상황이다.
1, 2, 3번째 : fitStart, fitCenter, fitEnd, fitXY는 이미지를 여백에 배치한다.
4번째 그림 : fitXY는 가로, 세로 방향으로 이미지뷰의 비율과 이미지의 비율에 맞게
모두 확대하여 이미지를 가득 채운다.
5번째 그림 fitCenter는 이미지를 중앙에 배치하며 이 값이 디폴트이다.
1번째 그림 : center 속성은 이미지를 위젯 중앙에 배치한다.
만약 위젯이 이미지보다 더 작다면 이미지는 잘린다.
2,3번째 그림 : centerCrop은 스케일링하되 위젯 면적을 최대한 다 채우며, 비율이 맞지 않은 쪽은 잘린다. 기본 이미지가( 100, 50 )이고, centerCrop은 ( 300, 100 )일 떄, 폭을 다 채우면 높이가 150이 되지만, 위 아래를 25씩 잘라 100을 맞춘다.
4,5번째 그림 : centerInside는 이미지를 확대하지 않고 "위젯이 뷰보다 작을 때" 종횡비를 맞추어 축소한다.
1번째 그림 : matrix는 이미지의 확대 비율과 위치를 행렬로 지정한다.
adjustViewBounds : 이미지가 뷰의 최대 크기보다 더 클 때, 위젯의 크기를 최대 크기로 강제 조정할 것인지 지 지정한다.
false : 최대 크기를 무시하고 이미지의 크기대로 위젯의 크기를 조정
true : 최대 크기에 맞게 이미지뷰 위젯의 크기도 강제 조정된다.
cropToPadding : 이미지를 잘라야 할 때 여백(padding)에서 자를 것인지, 여백을 무시하고 바깥 영역까지 최대한 활용할 것인가를 지정한다.
padding값이 존재할 때만 이 속성을 사용할 수 있으며, 실제로 이미지뷰에는 패팅을 잘 쓰지 않으므로
별 실용성이 없다. (위 그림에서 padding="20dip"를 줬으니 보이지 않을 뿐 여백이 존재한다.)
false(디폴트 값) : 안쪽 여백을 넘어 최대한의 공간을 다 활용한다.
true : 여백의 중요한 의미가 있어서 이미지가 잘리는 한이 있어도 여백을 유지해야 한다면 사용.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 어댑터뷰(Adapter View) (0) | 2016.07.31 |
---|---|
[안드로이드] 이미지 버튼(Image Button) (0) | 2016.07.31 |
[안드로이드] 라디오 버튼(Radio Button) (0) | 2016.07.30 |
[안드로이드 스튜디오] 소스코드 줄 번호 보이기 (0) | 2016.07.28 |
[안드로이드] 텍스트 뷰(TextView) (0) | 2016.07.28 |