[안드로이드/Android] ImageView에서 ScaleType에 대해..

 

이미지뷰의 속성중에 ScaleType라는 속성이 있습니다. 잘만 사용하면 참 유용한 녀석이죠.

 

 

ImageView ScaleType는 ImageView 를 만들때 xml에서 설정할 수도 있고 java코드상에서도 설정이 가능합니다.

 

위의 링크를 따라 가보시면 아래와 같이 설명이 되어 있습니다.

 

Enum Values
ImageView.ScaleType CENTER Center the image in the view, but perform no scaling.
ImageView.ScaleType CENTER_CROP Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or larger than the corresponding dimension of the view (minus padding).
ImageView.ScaleType CENTER_INSIDE Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or less than the corresponding dimension of the view (minus padding).
ImageView.ScaleType FIT_CENTER Scale the image using CENTER.
ImageView.ScaleType FIT_END Scale the image using END.
ImageView.ScaleType FIT_START Scale the image using START.
ImageView.ScaleType FIT_XY Scale the image using FILL.
ImageView.ScaleType MATRIX Scale using the image matrix when drawing.

머 그리 어려운 이야기는 아닙니다면 저처럼 영어에 약하신 분들은 아래를 보시면 조금 도움이 되실수 있을듯 합니다.

 

ㄱ. CENTER
이미지 크기에 대해 변형없이 그대로 ImageView 의 중앙에 위치.

 

ㄴ. CENTER_CROP
ImageView의 높이나 넓이에 맞추어 이미지 크기를 비율에 맞게 확대, 축소하여 이미지가  ImageView 에 꽉 차도록 위치.

 

ㄷ. CENTER_INSIDE
ImageView 의 높이나 넓이에 맞추어 이미지 크기를 비율에 맞게 확대 또는 축소하여 이미지가  ImageView의 높이 나 넓이에 맞추어 위치.

 

ㄹ. FIT_CENTER
ImageView 에 맞게 이미지 비율에 맞추어 확대, 축소 되어 보임, 이미지가 중앙에 위치.

 

ㅁ. FIT_END
ImageView 에 맞게 이미지 비율에 맞추어 확대, 축소 되어 보임, 이미지가 하단에 위치.

 

ㅂ. FIT_START
ImageView 에 맞게 이미지 비율에 맞추어 확대, 축소 되어 보임, 상단에 위치.

 

ㅅ. FIT_XY --> 개인적으로 자주 사용.
ImageView 에 맞게 이미지가 비율에 상관없이 틀에 꽉차게 확대, 축소.

단점 : 가로, 세로로 촬영한 경우 이미지가 약간 찌그려저 보일 수 있음.

 

ㅇ. MATRIX
ImageView의 좌측 상단을 기준으로 보여짐

단점 : 이미지에 대한 변형이 없기 때문에 ImageView에 비해 이미지가 크다면 짤림.