안드로이드 이미지 크기 비율 - andeuloideu imiji keugi biyul

안녕하세요

오늘은 imageView 크기를 조절하는 방법에 대해서 알려드리겠습니다.

우선 안드로이드 스튜디오를 켠 다음

새프로젝트를 만들어서 진행하도록 하겠습니다.

이렇게 새프로젝트를 만들었으면

기본으로 생성되는 감싸는 뷰를 LinearView로 교체해주세요.

이제 텍스트뷰를 지우고 이미지뷰로 교체하도록 하겠습니다.

이미지는 따로 구해서 넣는거보다

기본 이미지를 활용하는게 연습하는데 도움이 될거같아

기본이미지를 사용하였습니다.

여기서 이미지 사이즈를 바꾸는 방법은 두가지가 있다고 할수있습니다. 

첫번째.

크기를 강제로 조절한다.

위 방법은 이미지 뷰가 차지하는 공간에 따라서 크기가 바뀌는걸 활용한 방법입니다.

wrap_content란 해당 텍스쳐를 크기에 맞게 감싸기 때문에 남는 공간이 생길 수가 있습니다.

우리가 실생활에 비유하자면 락엔락통에 있는 음식을 랩에 감싼 것이라고 생각하시면 됩니다.

반면 match_parent는 해당 텍스쳐 이상으로 크기를 차지하기때문에

남는공간을 전부 차지할수도 있다고 할 수있습니다.

이 경우는 랩을 감싸지않고 음식물을 락엔락통에 넣었다고 할수 있습니다.

그렇기 때문에 이미지 뷰는 match_parent에서도 비율에 맞게 커지거나 작아지고

wrap_content에서도 기존에 있던 크기에 맞게 또는 그보다 작게 표현을 할수 있게 됩니다.

두번째.

비율로 크기를 정한다.

layout_weight는 해당 부분의 차지하는 비율을 정하게 해줍니다.

숫자가 커지면 그만큼 차지하는 비율이 커지고,

숫자가 작아지면 그만큼 비율이 적어지는 레이아웃을 만들때 중요한 역할을 하는 도구입니다.

세번째.

scaleType을 사용하여 이미지를 크롭하거나 위치를 조정한다.

아래의 결과는 imageView를 화면에 꽉차게 실험한 결과입니다. 

또한 scaletype이라는 도구는 이미지뷰 안에서 이미지를 조절하는 것이므로 참고하시길 바랍니다.

소스코드 실행결과
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="center"
android:src="@mipmap/ic_launcher_round"/>

원본 이미지의 크기에 맞게 중앙에 배치하게 됩니다.

<세로 크기가 이미지보다 작은경우>
<ImageView
android:layout_width="300dp"
android:layout_height="30dp"
android:scaleType="centerInside"
android:src="@mipmap/ic_launcher_round"/>세로의 크기에 맞춰서 이미지 비율을 맞추고 이미지를 센터에
위치시킨다.

<가로 크기가 이미지보다 작은경우>
<ImageView

android:layout_width="30dp"
android:layout_height="300dp"
android:scaleType="centerInside"
android:src="@mipmap/ic_launcher_round"/>

가로의 크기에 맞춰서 이미지 비율을 맞추고 이미지를 센터에
위치시킨다.

<가로세로가 이미지보다 큰경우>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@mipmap/ic_launcher_round"/>android:scaleType="center"와 같음

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher_round"/>

이미지를 가장 큰 쪽에 맞춰 크기를 늘린 후 이미지를 중앙에 배치한다.
비율이 맞지않으면 이미지가 잘릴 수 있다.

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitStart"
android:src="@mipmap/ic_launcher_round"/>

세로의 크기에 맞춰서 이미지 비율을 맞추고 이미지를 상단에
위치시킨다.

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:src="@mipmap/ic_launcher_round"/>

가로세로 중 작은 쪽 길이에 맞게 이미지를 확대 또는 축소를
하게 되며, 이미지는 중앙에 배치합니다.

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitEnd"
android:src="@mipmap/ic_launcher_round"/>

가로세로 중 작은 쪽의 길이에 맞게 이미지를 확대 또는 축소를 하게 되며, 이미지는 하단에 배치합니다.

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/ic_launcher_round"/>

android:scaleType="centerCrop" 과 달리 이미지를 자르지 않으며 이미지 뷰안에 이미지를 꽉차게 하기 위해 확대 또는 축소하게 됩니다.

그렇기 때문에 기존의 사진과 이미지가 많이 달라져 보일 수 있습니다.

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="matrix"
android:src="@mipmap/ic_launcher_round"/>

왼쪽 최상단에 이미지가 위치하게 되며 크기가 원본으로 고정되어있기때문에 이미지 뷰의 크기가 맞지 않는다면 이미지가 잘려보일수 있습니다.

<가로가 이미지보다 작을 때>
<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:scaleType="matrix"
android:src="@mipmap/ic_launcher_round"/>

이상으로 글을 마치겠습니다.

더 궁금하신점이나 제가 빠뜨린 내용이 있다면 답글로 적어주신다면 감사하겠습니다.

Toplist

최신 우편물

태그