CENTER_INSIDE और FIT_CENTER स्केल प्रकार के बीच क्या अंतर है?


143

मैं ImageView.ScaleType.CENTER_INSIDEऔर के बीच का अंतर नहीं बता सकता ImageView.ScaleType.FIT_CENTER

CENTER_INSIDE

छवि को समान रूप से स्केल करें (छवि के पहलू अनुपात को बनाए रखें) ताकि छवि के दोनों आयाम (चौड़ाई और ऊंचाई) दृश्य के संबंधित आयाम (शून्य से कम) के बराबर या उससे कम होंगे।

FIT_CENTER

एक पैमाने की गणना करें जो मूल src पहलू अनुपात को बनाए रखेगा, लेकिन यह भी सुनिश्चित करेगा कि src पूरी तरह से dst के अंदर फिट बैठता है। कम से कम एक अक्ष (एक्स या वाई) बिल्कुल फिट होगा। परिणाम 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, आदि वास्तव में छवि को केंद्र में नहीं रखते हैं, जहां तक ​​मैं बता सकता हूं। कम से कम मामले में जब छवि दृश्य से छोटी है। मै गलत हो सकता हूँ।
तैमूएम

4
ऐसा लगता है कि FIT_CENTER हमेशा (लगभग) अधिक अनुकूल है।
चेंग यांग

2
यह अभी भी समझ में नहीं आता क्योंकि FIT_CENTERवह कहता है At least one axis (X or Y) will fit exactly। क्या इसका मतलब यह नहीं है कि दोनों एक ही काम करते हैं?
क्रिस्टोफर पेरी

46
असल में, प्रलेखन स्पष्ट नहीं है कि CENTER_INSIDE UP (केवल DOWN) को स्केल नहीं करता है
Ken

1
@ यह परिदृश्य को अनदेखा करता है जहां छवि दृश्य बॉक्स से बड़ी होती है, जिस स्थिति में CENTER_INSIDEयह पैमाने पर होता है, और इस तरह अनावश्यक रूप से जटिल हो जाता है। अन्य उत्तर इसे सही ढंग से समझाते हैं और बहुत अधिक संक्षेप में।
Livven

245

यहाँ CENTER_INSIDEऔर के बीच के अंतर का एक चित्रमय चित्रण है FIT_CENTER


उपयोग की गई छवि (100 × 100):

Android_Robot_100.png


छोटी छवि देखें (75 × 50):

CENTER_INSIDE:

CENTER_INSIDE छोटी छवि देखने के लिए

FIT_CENTER:

छोटी छवि देखने के लिए FIT_CENTER

दोनों CENTER_INSIDEऔर FIT_CENTERछवि को छोटा करते हैं।


बड़ी छवि देखें (300 × 200):

CENTER_INSIDE:

बड़ी छवि देखने के लिए CENTER_INSIDE

FIT_CENTER:

बड़ी छवि देखने के लिए FIT_CENTER

CENTER_INSIDEछवि विस्तार नहीं करता है, FIT_CENTERकरता है।


एंड्रॉइड रोबोट Google द्वारा निर्मित और साझा किए गए काम से पुन: उत्पन्न या संशोधित होता है और इसका उपयोग क्रिएटिव कॉमन्स 3.0 एट्रीब्यूशन लाइसेंस में वर्णित शर्तों के अनुसार किया जाता है।


50

वे समान हैं यदि छवि कंटेनर से बड़ी है। यदि छवि छोटी है, तो कंटेनर CENTER_INSIDE छवि को स्केल नहीं करेगा जबकि FIT_CENTER करेगा।


1

वही अगर कंटेनर से छवि बड़ी है। यदि छवि छोटी है, तो कंटेनर CENTER_INSIDE छवि को स्केल नहीं करेगा जबकि FIT_CENTER करेगा।

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