android : imageview에서 이미지를 화면에 맞게 늘이기


126

I는이 imageview그것의 높이와 폭을 갖는다 세트 fill_parentA의 linearlayout동일한 값이 설정되어있다. 따라서 이것이 이미지를 화면에 맞게 설정해야한다고 가정합니다. 그러나 80 % 만 맞습니다 (가로 모드의 여백 상단 및 하단).

나는 성공하지 않고 다음 코드를 시도했다.

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

imgView.setMinimumWidth(width);
imgView.setMinimumHeight(height);

imgView.setMaxWidth(width);
imgView.setMaxHeight(height);

다른 아이디어가 있습니까?


약간 다른 문제이지만 이 답변 이 도움이 될 것입니다.
Fredley

답변:


317

문법적으로 사용하려면 다음을 사용하십시오.

imgview.setScaleType(ScaleType.FIT_XY);

또는

XML 사용에서 변경하려면 :

 android:scaleType="fitXY"

26
나는 이것이 당신이 원하는 것을 알고 있지만, 가로 세로 비율에 관심이있는 이미지의 경우이를 늘릴 것입니다.
Artem Russakovskii 1

ScrollView 내부의 ImageView에 대해 궁금합니다. 측면도 올바르게 유지됩니다.
JNissi

10
레이아웃 xml, android : scaleType = "fitXY"에서 동일하게 정의 될 수 있음
Sathesh

9
이미지를 모든 영역에 채우고 좋은 종횡비를 유지하려면v.setAdjustViewBounds(true); v.setScaleType(ImageView.ScaleType.CENTER_CROP);
Marco Florian

1
매력처럼 작동
데이브 오 그 레이디

119

레이아웃 android:scaleType="fitXY"
PS 의 xml 파일을 제공하십시오 . 이것은 배경이 기본적으로보기에 맞게 늘어나고 맞도록 설정되어 있지 android:src="..."않고 이미지가 설정된 경우에 적용됩니다 android:background="...".


배경 문제는 나를 위해 문제를 해결하는 데 도움이되지 않았습니다. 내가 잘못하고 있습니까? 살펴 보시기 바랍니다 : stackoverflow.com/questions/14164473/...을
Dheeraj 바스 카르에게

1
가로 세로 비율이 나던 돌봐 당신은 이미지 '폭을 하드 코딩 규모에 높이를 원하는 경우
아가 왈 Akshat

그러면 전체 화면에 맞추려면 어떻게해야합니까? 나는 그것이 여전히 비례하기를 원합니다
Ruchir Baronia

android : background = "..."대신 android : src = "..."에 적용한다고 +1하면 매우 중요합니다
DragonFire

20

이것을 사용하십시오 :

ImageView.setAdjustViewBounds(true);

4
이것과 함께 android:scaleType="fitXY"작동했습니다. 감사합니다
smac89

@ smac89이 조합과 FIT_CENTER를 사용하는 것의 차이점은 무엇입니까? FIT_CENTER를 사용하지 않아야합니까?
Jenix

@Jenix, 마지막으로 Android를 터치 한 지 오래되었다고 생각하지만, 그 이유 fitXY는 설정된 프레임 /보기에 맞게 이미지가 비례 적으로 늘어나 기 때문이라고 생각합니다 . FIT_CENTER사운드를 사용 하면 이미지가 배치됩니다. 뷰의 중앙에 있지만 뷰를 채우지 않습니다. 내가 틀렸을 수도 있지만 어떤 것이 효과적인지 알아 내기 위해 실험 해 볼 수있다
smac89

@ smac89 요청하기 전에 나는 이미 두 가지를 모두 테스트했으며 동일하게 작동했습니다. 이유에 대해 궁금했지만 이제는 내가 알려 주신 조합에 대해 몰랐던 것처럼 FIT_CENTER를 모른다고 생각합니다. :)
Jenix

9

사용하는 경우 android:scaleType="fitXY"다음을 지정해야합니다.

android:layout_width="75dp"android:layout_height="75dp"

wrap_content를 사용하면 필요한 것으로 확장되지 않습니다.

<ImageView
android:layout_width="75dp"
android:layout_height="75dp"
android:id="@+id/listItemNoteImage"
android:src="@drawable/MyImage"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:scaleType="fitXY"/>


2

android:scaleType="fitXY"코드를 Xml 파일에서 사용했습니다 .


0

ImageView 높이와 너비를 wrap_content로 변경하고 사용하십시오.

exampleImage.setScaleType (ImageView.ScaleType.FIT_XY);

귀하의 코드에서.


-11

사용하려고 :

imageview.setFitToScreen(true);
imageview.setScaleType(ScaleType.FIT_CENTER);

이미지 비율을 화면에 맞는 비율로 맞 춥니 다.


12
"imageview.setFitToScreen (true);" -저게 뭐야? 문서화되지 않은 방법?
Malachiasz

나는 이클립스를 사용하고 있으며 컴파일되지 않습니다 :imageview.setFitToScreen(true)
learner

5
안드로이드에는 이와 같은 방법이 없습니다.
NightFury

어쩌면 그는 의미했다 setFitsSystemWindows()??
금지 지오 엔지니어링
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.