CENTER_INSIDE와 FIT_CENTER 스케일 유형의 차이점은 무엇입니까?


143

나는 사이의 차이 말할 수 없습니다 ImageView.ScaleType.CENTER_INSIDEImageView.ScaleType.FIT_CENTER.

CENTER_INSIDE

이미지의 크기 (너비와 높이)가보기의 해당 크기 (마이너스 패딩)와 같거나 작도록 이미지의 크기를 균일하게 조정합니다 (이미지의 가로 세로 비율 유지).

FIT_CENTER

원본 src 종횡비를 유지하면서 src가 dst 안에 완전히 들어가도록 스케일을 계산하십시오. 최소한 하나의 축 (X 또는 Y)이 정확하게 맞습니다. 결과는 dst의 중앙에 있습니다.

누군가 둘 사이의 차이점을 밝힐 수 있습니까?

답변:


145

FIT_CENTER는 소스가 컨테이너 내부에 완전히 들어가고 수평 또는 수직 축이 정확해야합니다.

CENTER_INSIDE는 가장자리를 정확하게 일치시키지 않고 이미지를 컨테이너 내부에 배치합니다.

따라서 10 "x 10"의 사각형 상자와 8 "x8"의 이미지가있는 경우 CENTER_INSIDE는 소스와 대상 컨테이너 사이에 2 "가있는 상자의 중간에 직접 있습니다.

FIT_CENTER를 사용하면 위의 예와 동일한 이미지가 측면이 동일하고 하나의 축이 대상과 일치하기 때문에 전체 컨테이너에 맞습니다. FIT_CENTER를 사용하면 상자가 5 "x 10"이고 이미지가 5 "x 7"인 경우 이미지의 크기가 비례 적으로 조정되므로 축 중 하나가 맞지만 여전히 목적지.

그것들은 비슷하지만 하나는 소스가 가능한 한 목적지를 채우도록 만들어졌고 다른 하나는 목적지 내부의 이미지를 중앙에 위치시킵니다.

조금 명확 해 지길 바라는 희망


내가 말할 수 있는 한 center/ centerInside등은 실제로 이미지의 중심에 있지 않습니다. 적어도 이미지가보기보다 작은 경우. 내가 틀렸을 수도있다.
Timmmm

4
FIT_CENTER가 (거의) 항상 더 유리하다고 들립니다.
cheng yang

2
이것은 여전히 의미하기 때문에이하지 않는 FIT_CENTER상태 것을 At least one axis (X or Y) will fit exactly. 이것이 둘 다 같은 일을한다는 것을 의미하지 않습니까?
크리스토퍼 페리

46
기본적으로, 문서 CENTER_INSIDE가 (만 DOWN) UP 확장하지 않는 것을 명확하지 않다

1
@Ken 이미지가보기 상자보다 큰 시나리오를 무시합니다.이 경우 이미지가 CENTER_INSIDE축소되므로 불필요하게 복잡해집니다. 다른 답변은 이것을 정확하고 훨씬 간결하게 설명합니다.
Livven

245

여기에서의 차이의 그래픽 그림의 CENTER_INSIDEFIT_CENTER.


사용 된 이미지 (100 × 100) :

Android_Robot_100.png


작은 이미지보기 (75 × 50) :

CENTER_INSIDE :

작은 이미지보기를위한 CENTER_INSIDE

FIT_CENTER :

작은 이미지보기를위한 FIT_CENTER

모두 CENTER_INSIDEFIT_CENTER이미지를 축소.


큰 이미지보기 (300 × 200) :

CENTER_INSIDE :

큰 이미지보기를위한 CENTER_INSIDE

FIT_CENTER :

큰 이미지보기를위한 FIT_CENTER

CENTER_INSIDE이미지를 확대하지 않습니다 FIT_CENTER.


Android 로봇은 Google이 만들고 공유 한 저작물에서 재생산 및 수정되며 Creative Commons 3.0 저작자 표시 라이센스에 설명 된 조건에 따라 사용됩니다.


50

이미지가 컨테이너보다 큰 경우에도 동일합니다. 이미지가 더 작 으면 컨테이너 CENTER_INSIDE는 이미지를 확대하지 않지만 FIT_CENTER는 이미지를 확대합니다.


1

이미지가 컨테이너보다 큰 경우에도 동일합니다. 이미지가 더 작 으면 컨테이너 CENTER_INSIDE는 이미지를 확대하지 않지만 FIT_CENTER는 이미지를 확대합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.