प्रोग्रामर के रूप में इमेजव्यू की ऊंचाई को प्रोग्रामेटिक रूप से सेट करें


84

मैं एक की ऊंचाई निर्धारित करने की आवश्यकता imageView के रूप में matchparent programatically.if यह एक निश्चित ऊंचाई मुझे पता है कि कैसे स्थापित करने के लिए है।

लेकिन मैं इसे अतुलनीय के रूप में कैसे सेट कर सकता हूं?

संपादित करें:

वास्तव में पैरेंट लेआउट की ऊंचाई डायनामिक है। इसलिए मुझे इमेजव्यू की ऊंचाई को माता-पिता की ऊंचाई के रूप में बनाने की आवश्यकता है।


2
मैंने उत्तर में बताए गए सभी तरीकों की कोशिश की है। लेकिन यह मैच माता
-

1
आपको अपने स्वीकृत उत्तर की समीक्षा करनी चाहिए
CularBytes

जवाबों:


-20

लेआउटपार्म्स शुरू करें।

माता-पिता की चौड़ाई और ऊँचाई असाइन करें और इसे छवि के सेटलेयूटपाम्स विधि को दें


3
आपको माता-पिता को वास्तविक आयामों को पास नहीं करना चाहिए। हमेशा वास्तविक मूल्यों के बजाय MATCH_PARENT का उपयोग करें। सामान्य तौर पर मैं पूर्ण आकार का उपयोग करने की अनुशंसा नहीं करूंगा क्योंकि यह सभी स्क्रीन पर पूरी तरह से अलग दिख सकता है। मैं वेट का उपयोग करना पसंद करूंगा।
डैनियल बो

12
ईमानदार होने के लिए यह एक टिप्पणी होनी चाहिए
नियॉन वॉर

259
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

12
जिस क्षण मैं Alt + Enter को लेआउटपार्म्स में दबाता हूं, मैं बहुत सारी कक्षाएं देखता हूं। क्या आप कृपया मुझे बता सकते हैं कि किसका उपयोग करना है?
उदय

माता-पिता का दृष्टिकोण क्या है?
सी। लेउंग

4
आपको उस क्लास के दृश्य का उपयोग करना चाहिए जिसे आप लेआउटप्रैम सेट करना चाहते हैं अर्थात LinearLayout.LayoutParams का उपयोग करके अपने LL में प्रैम सेट करें :)
एंड्रयू

क्या होगा यदि आप मूल छवि के आयामों के आधार पर ऊंचाई को गतिशील बनाना चाहते हैं, लेकिन चाहते हैं कि MATCH_PARENT चौड़ाई हो?
टेलर

आयात android.view.ViewGroup
एलन नेल्सन

57
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

7
यदि आप पहली बार परमिशन सेट कर रहे हैं क्योंकि आपने इमेजव्यू को प्रोग्रामेटिक रूप से बनाया है, तो यह पॉइंटर त्रुटि (या टेक्स्ट व्यू के साथ) को शून्य कर देगा और हर जगह होना चाहिए।
18'18

15
imageView.setLayoutParams
    (new ViewGroup.MarginLayoutParams
        (width, ViewGroup.LayoutParams.MATCH_PARENT));

लेआउट प्रकार का प्रकार मूल दृश्य समूह पर निर्भर करता है। यदि आप गलत डालते हैं तो यह अपवाद का कारण होगा।


1
"चौड़ाई" क्या है?
फ्लोरियनबी 22

9

Kotlin उपयोगकर्ता के लिए

val params = mImageView?.layoutParams as FrameLayout.LayoutParams
params.width = FrameLayout.LayoutParams.MATCH_PARENT
params.height = FrameLayout.LayoutParams.MATCH_PARENT
mImageView?.layoutParams = params

यहां मैंने FrameLayout.LayoutParamsअपने विचारों का उपयोग किया है ( ImageView) माता-पिता हैंFrameLayout


4

मेरा भी यही मुद्दा था। पहली सेटिंग द्वारा हल किया गया:

imageView.setMinHeight(0);
imageView.setMinimumHeight(0);

और तब :

imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

setMinHeight को ImageView द्वारा परिभाषित किया गया है, जबकि setMinimumHeight को View द्वारा परिभाषित किया गया है। डॉक्स के अनुसार, दो मानों का अधिक उपयोग किया जाता है, इसलिए दोनों को सेट किया जाना चाहिए।


3

आप यह कोशिश कर सकते हैं कि आप माता-पिता से मेल खाना चाहते हैं। आयाम व्यवस्था चौड़ाई और ऊंचाई इनवर्टर है

web = new WebView(this);
        web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

1

आप MATCH_PARENT निरंतर या इसके संख्यात्मक मान -1 का उपयोग कर सकते हैं।


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