एंड्रॉइड: स्क्रीन को फिट करने के लिए इमेजव्यू में स्ट्रेच इमेज


126

मैं एक है imageviewकरने के लिए अपनी ऊंचाई और चौड़ाई सेट है कि fill_parentएक साथ 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);

कोई अन्य विचार?


हालाँकि यह थोड़ी अलग समस्या है, लेकिन इस जवाब से आपको मदद मिलेगी।
फ्रेडली

जवाबों:


317

प्रो-व्याकरणिक उपयोग को बदलने के लिए:

imgview.setScaleType(ScaleType.FIT_XY);

या

xml उपयोग से बदलने के लिए:

 android:scaleType="fitXY"

26
मुझे पता है कि यह वही है जो आप चाहते थे, लेकिन उन छवियों के लिए जहां आप पहलू अनुपात की परवाह करते हैं, यह इसे बाहर खींच लेगा।
आर्टेम रसाकोवस्की

एक स्क्रॉल दृश्य के अंदर ImageView के लिए अद्भुत काम करता है। यहां तक ​​कि पहलू को सही रखा गया है।
जेनिस

10
उसी को लेआउट में परिभाषित किया जा सकता है xml, android: scaleType = "fitXY"
Sathesh

9
छवि को सभी क्षेत्र को भरने के लिए और एक अच्छा पहलू अनुपात उपयोग रखने के लिएv.setAdjustViewBounds(true); v.setScaleType(ImageView.ScaleType.CENTER_CROP);
मार्को फ्लोरियन

1
एक आकर्षण की तरह काम करता है

119

अपने लेआउट android:scaleType="fitXY"
PS की xml फ़ाइल में दें : यह तब लागू होता है जब छवि सेट के android:src="..."बजाय android:background="..."पृष्ठभूमि के साथ डिफ़ॉल्ट रूप से खिंचाव और देखने के लिए फिट होती है।


पृष्ठभूमि की बात ने मेरे लिए समस्या को हल करने में मदद नहीं की, क्या मैं कुछ गलत कर रहा हूं? कृपया एक नज़र डालें: stackoverflow.com/questions/14164473/…
धीरज भास्कर

1
यदि आप छवियों की चौड़ाई को हार्डकोड करते हैं तो यह पहलू अनुपात का ध्यान नहीं रखता है और ऊंचाई को स्केल करना चाहते हैं
अक्षत अग्रवाल

पूरी स्क्रीन फिट करने के लिए मुझे यह कैसे मिल सकता है? मैं चाहता हूं कि यह अभी भी आनुपातिक हो
रुचिर बरोनिया

+1 यह बताने के लिए कि यह एंड्रॉइड पर लागू होता है: src = "..." Android के बजाय: बैकग्राउंड = "..." यह बहुत महत्वपूर्ण है
DragonFire

20

इसे इस्तेमाल करो:

ImageView.setAdjustViewBounds(true);

4
इस संयोजन के साथ android:scaleType="fitXY"काम किया है। धन्यवाद
smac89

@ smac89 उन संयोजन और FIT_CENTER का उपयोग करने के बीच क्या अंतर है? FIT_CENTER का उपयोग नहीं करना चाहिए?
जेनिक्स

@ जेनिक्स, मन करता है कि आपको एंड्रॉइड को पिछली बार छूने के कुछ समय बाद ही हो, लेकिन मेरा मानना fitXYहै कि ऐसा करने का कारण यह है कि फ्रेम को फिट करने के लिए छवि को समानुपातिक रूप से बढ़ाया गया है / यह देखने के लिए सेट किया गया था। FIT_CENTERध्वनियों का उपयोग करना जैसे कि यह सिर्फ छवि को जगह देगा। दृश्य के केंद्र में, लेकिन दृश्य नहीं भरता है। मैं गलत हो सकता हूं, लेकिन आप यह पता लगाने के लिए कि क्या काम करता है
smac89

@ smac89 पूछने से पहले मैंने पहले ही दोनों का परीक्षण कर लिया और यह बस एक ही काम किया। मैं कारण के बारे में उत्सुक था, लेकिन अब सोचता हूं कि आप FIT_CENTER को ठीक उसी तरह से नहीं जानते जैसे मैं उस संयोजन के बारे में नहीं जानता था जो आप मुझे जानते हैं। :)
जेनिक्स

9

यदि आप उपयोग करते हैं android:scaleType="fitXY"तो आपको निर्दिष्ट करना होगा

android:layout_width="75dp" तथा android:layout_height="75dp"

अगर wra_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 ऊंचाई और चौड़ाई को wra_content और उपयोग में बदलें

exampleImage.setScaleType (ImageView.ScaleType.FIT_XY);

आपके कोड में


-11

उपयोग करने की कोशिश कर रहा है:

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

यह आपकी छवि को सही अनुपात के साथ स्क्रीन पर फिट करेगा।


12
"imageview.setFitToScreen (सही)," - वो क्या है? कुछ अनिर्धारित विधि?
मलयेशियास

मैं ग्रहण का उपयोग कर रहा हूं और यह संकलन नहीं करता है:imageview.setFitToScreen(true)
शिक्षार्थी

5
Android में इस तरह की कोई विधि नहीं है।
रात्रि विश्राम

शायद उसका मतलब था setFitsSystemWindows()??
प्रतिबंध-जियोइंजीनियरिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.