POST

[안드로이드][코틀린]Android ImageView 스케일변경과 버튼사용

스케일이란?

스케일(scale)은 이미지를 imageView에서 사용할때 이미지의 크기나 위치를 각기다른 크기의 사진을 효율적으로 보여주기 위해 사용하는 속성입니다.

 

스케일의 종류
center // 이미지뷰 중앙에 원본크기 그대로 표시
// 이미지가 이미지뷰 보다 작다면 빈공간은 배경으로 표시
centerCrop // 이미지뷰 중앙에 이미지의 짧은 부분에 맞추어 이미지뷰의 크기로 이미지의 비율에 맞추어 표시
// 이미지가 이미지뷰보다 작다면 빈공간은 배경으로 표시
centerInside // 이미지뷰 중앙에 이미지의 긴 부분에 맞추어 이미지뷰의 크기로 이미지의 비율에 맞추어 표시
// 이미지가 이미지뷰보다 작다면 빈공간은 배경으로 표시
fitCenter // 이미지뷰 중앙에 이미지의 긴 부분에 맞추어 이미지뷰의 크기로 이미지의 비율에 맞추어 표시
// 이미지가 이미지뷰보다 작다면 동일하게 크기를 변경하여 표시
fitStart // 이미지뷰 왼쪽 상단을 기준으로 배치하고 이미지를 fitCenter처럼 변경한다.
// 이미지가 이미지뷰보다 작다면 동일하게 크기를 변경하여 표시
fitEnd // 이미지뷰 오른쪽 하단을 기준으로 배치하고 이미지를 fitCenter처럼 변경한다.
// 이미지가 이미지뷰보다 작다면 동일하게 크기를 변경하여 표시
fitXY // 이미지의 비율을 무시하고 이미지뷰의 크기에 맞춰 이미지의 크기로 표시
matrix // 코드내에서 개발자가 지정한 matrix에 따라 이동, 회전, 크기를 조절하여 표시

 

연습

안드로이드에서 이미지를 불러와 사용되는 기본 레이아웃인 ImageView를 이용하여 이미지를 불러와 이미지 스케일을 적용시키고 버튼을 눌러 스케일을 변경하는 프로젝트를 만들어 봅시다

 

우선 선택한 이미지 두개를 왼쪽의 프로젝트에서 app-res-drawable 폴더에 드래그하여 삽입 합니다. (이미지의 이름은 영문소문자와 언더바( _ ),숫자로 이름을 바꾸어 주세요. 

Ex) img_example1, img_example2

 

이미지를 저장할 실제 위치설정에서 가장 마지막 drawable을 drawable-xxhdpi로 변경하여 저장합니다.

이미지뷰 설정

이미지뷰의 크기와 ID을 변경합니다.

 

버튼의 ID와 크기, 이름을 변경합니다.

 

activity_main.xml의 코드를 참고하여 작성해도 됩니다.

 

mainActivity.kt 의 소스를 위와같이 작성합니다.