अक्सर पूछा, कभी जवाब नहीं दिया (कम से कम एक प्रतिलिपि प्रस्तुत करने योग्य तरीके से नहीं)।
मेरे पास एक छवि है जिसमें एक छवि है जो दृश्य से छोटी है। मैं छवि को स्क्रीन की चौड़ाई में स्केल करना चाहता हूं और छवि के आनुपातिक रूप से सही ऊंचाई को दर्शाने के लिए ImageView की ऊंचाई को समायोजित करना चाहता हूं।
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
इसके परिणामस्वरूप छवि अपने मूल आकार (तब स्क्रीन की चौड़ाई) के किनारे पर हाशिये पर केंद्रित होती है। अच्छा नहीं।
तो मैंने जोड़ा
android:adjustViewBounds="true"
समान प्रभाव, अच्छा नहीं। मैंने कहा
android:scaleType="centerInside"
समान प्रभाव, अच्छा नहीं। मैं बदल centerInside
गया fitCenter
। समान प्रभाव, अच्छा नहीं। मैं बदल centerInside
गया centerCrop
।
android:scaleType="centerCrop"
अब, अंत में, छवि को स्क्रीन की चौड़ाई तक बढ़ाया जाता है - लेकिन ऊपर और नीचे से काट दिया गया! इसलिए मैं बदल centerCrop
गया fitXY
।
android:scaleType="fitXY"
अब छवि को स्क्रीन की चौड़ाई पर स्केल किया गया है, लेकिन y- अक्ष पर स्केल नहीं किया गया है, जिसके परिणामस्वरूप विकृत छवि है।
हटाने android:adjustViewBounds="true"
का कोई प्रभाव नहीं है। android:layout_gravity
जैसा कि कहीं और सुझाव दिया गया है, जोड़ना फिर से कोई प्रभाव नहीं है।
मैंने अन्य संयोजनों की कोशिश की है - कोई फायदा नहीं हुआ। तो, कृपया किसी को पता है:
आप स्क्रीन की चौड़ाई को भरने के लिए एक इमेज व्यू के XML को कैसे सेट करते हैं, संपूर्ण दृश्य को भरने के लिए एक छोटी छवि को स्केल करते हैं, छवि को विरूपण या क्रॉपिंग के बिना इसके पहलू अनुपात के साथ प्रदर्शित करते हैं?
संपादित करें: मैंने एक मनमाना संख्यात्मक ऊंचाई सेट करने का भी प्रयास किया। यह केवल centerCrop
सेटिंग के साथ एक प्रभाव है । यह दृश्य ऊंचाई के अनुसार छवि को लंबवत रूप से विकृत करेगा।
android:scaleType="fitCenter"
?