2012-03-13 14 views
8

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

समस्या यह है कि छविदृश्य पूरी स्क्रीन लेता है। छवि स्वयं नहीं है, लेकिन दृश्य करता है। मुझे यह पता लगाना प्रतीत नहीं होता है। जैसा कि आप मेरे एक्सएमएल में देख सकते हैं, मैं छवि दृश्य के लिए fill_parent का उपयोग नहीं कर रहा हूं और मैंने छवि के लिए प्रत्येक संभावित स्केल टाइप की कोशिश की है।

कोई सुझाव? अगर यह मदद करता है कि मैं एंड्रॉइड एपीआई 8

संपादित करें: मैंने नीचे एक्सएमएल बदल दिया है ताकि आप जो भी लिखा है उसका उपयोग कर सकें।

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="#FFFFFF" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="fitStart" 
     android:src="@drawable/quote_sample_img" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="bottom" 
     android:orientation="vertical" > 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="This is text" /> 
    </LinearLayout> 

</LinearLayout> 

http://i.imgur.com/m3msH.png (वास्तविक तस्वीर क्षमा पर्याप्त नहीं प्रतिष्ठा पोस्ट करने के लिए)

+0

क्या आपने imageview लेआउट और दूसरे लाइनरलेआउट के बीच की मात्रा के बीच एक निश्चित राशन सेट करने के लिए लेआउट_वेट प्रॉपर्टी का उपयोग करने का प्रयास किया है? यह कैसे हुआ? – pogo2065

+0

ताकि इस प्रकार की तरह काम किया लेकिन जिस तरह से मैं उम्मीद करता हूं। मैंने बस पैरामीटर के पूरे समूह के साथ खेला और जब मैंने छवि को एक लेआउट_वेट = "। 8" और लाइनरलेआउट और ".2" का लेआउट_वेट दिया तो नीचे बार दिखाई दिया। अजीब बात यह है कि मैंने लाइनरलेआउट जितना अधिक वजन दिया, उतना ही कम दिखाई दिया। वह मेरे किसी मतलब का नहीं है। कोई विचार क्यों यह होगा? – amc6

+0

मैं इसका उपयोग करके आगे बढ़ने के बारे में चिंतित हूं, भले ही यह काम करता है, क्योंकि मुझे कई और विचार जोड़ना है, और मुझे नहीं पता कि यह काम करेगा या नहीं, चाहे वह एकाधिक स्क्रीन – amc6

उत्तर

11

बातें करता है, तो एंड्रॉयड काम करने के लिए लगता है imageView।

(मैं वास्तव में क्या हो रहा है के बारे में और लेआउट एल्गोरिथ्म में किस क्रम में अनिश्चित हूं तो क्यों की व्याख्या नहीं कर सकते हैं।)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="#FFFFFF" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.0" 
     android:scaleType="fitStart" 
     android:src="@drawable/quote_sample_img" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="bottom" 
     android:orientation="vertical" > 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="This is text" /> 
    </LinearLayout> 

</LinearLayout> 
+1

हाँ इसे ठीक करता है, लेकिन यह अभी भी मुझे कोई समझ नहीं आता है। क्या 1 का लेआउट_वेट छविदृश्य को यथासंभव बड़ा नहीं बनाना चाहिए, छोटा नहीं? – amc6

+1

1.0 पर एक लेआउट_वेट सेट हमेशा यह कहने जैसा नहीं है कि दृश्य जितना संभव हो उतना बड़ा होगा। यह इस बात पर निर्भर करता है कि हम डिजाइन में अन्य विचारों को कितना भार देते हैं। अधिक जानकारी के लिए इस पोस्ट को देखें http://stackoverflow.com/questions/3995825/what-does-androidlayout-weight-mean – HenrikS

+0

यह मेरे जीवन का एक घंटा चला गया है क्योंकि यह समझ में नहीं आता है! –

0

मुझे लगता है कि समस्या हो सकती है कि आप जिस चित्र को प्रयोग किया है: (http://i.imgur.com/qN5aT.jpg यह छवि है कि मैं छवि को ध्यान में रखते का उपयोग करें) स्क्रीन से बड़ा है, ताकि ImageView की ऊंचाई ऊंचाई पर फिट करने के लिए उपलब्ध स्थान की ऊंचाई पर सेट हो, जिससे किसी और चीज के लिए कोई जगह न छोड़े।

साथ ही, यदि आप चाहते हैं हमेशा निचले बार दिखाई दे रहा है, यह बहुत तरह के बजाय एक RelativeLayout उपयोग करना बेहतर है: layout_weight = "1.0" में जोड़ा जाता है:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/Main" 
    android:orientation="vertical" > 
    <LinearLayout 
     android:id="@+id/bottom_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="bottom" 
     android:layout_alignParentBottom="true" 
     android:orientation="vertical" > 
     <include layout="@layout/browse_bottom_bar" /> 
    </LinearLayout> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@id/bottom_bar" 
     android:src="@drawable/quote_sample_img" /> 
</RelativeLayout> 
+0

स्थान को चौगुनी करना है, मैं पहले से ही रिलेटिवेलआउट का उपयोग कर रहा था, लेकिन मैंने शुरू में सोचा कि मैं अनुचित रूप से इसका उपयोग कर रहा था और जिस समस्या के बारे में मैंने पोस्ट किया था उसका कारण बन गया। मैंने एक लीनियरलाइट पर स्विच किया और समस्या बनी रही तो मैंने इसे पोस्ट किया। मैं बाद में वापस आऊंगा। आप सही हैं कि जब तक इसका आकार बदल नहीं जाता है तब तक स्रोत छवि स्क्रीन से बड़ी होती है। लेकिन छविदृश्य का आकार बदलने के बाद भी पूरी स्क्रीन http://i.imgur.com/m3msH.png – amc6

0

मैं एक बहुत ही इसी तरह के मुद्दे, https://stackoverflow.com/questions/9765401/imageview-with-adjustviewbounds-seems-to-ignore-following-elements

यह पर तैनात है ऐसा लगता है कि इमेजव्यू छवि को स्केल करने के बाद संकीर्ण नहीं होता है, जब भी आप एडजस्टव्यूबाउंड = "सत्य" निर्दिष्ट करते हैं।

लेकिन, जैसा कि आप अपने स्वयं के पोस्ट से देख सकते हैं कि पूर्ण उत्तर नहीं है: छविदृश्य अभी भी डिस्प्ले से नीचे आइटम को दबा सकता है, या छवि बहुत बड़ी है, तो मैं अपनी जगह में घुसपैठ कर सकता हूं, जिसे मैं कोशिश करने पर काम कर रहा हूं ठीक करने के लिए।

+0

नीचे काई की पोस्ट में लापता लिंक लगता है ... पहले फिक्स्ड फ़ूटर घोषित करें, फिर छवि दृश्य के साथ समाप्त होने वाला शीर्ष अनुभाग। स्वर्ग आपकी मदद करता है यदि आपका लेआउट अधिक जटिल है कि ... – Ian

1

यह छवि में wrap_content है - स्रोत फ़ाइल शायद बहुत लंबा है। छवि क्षेत्र पैदा करने के लिए अपने imageView में

उपयोग इस स्केलिंग के बाद छवि के नए आकार को पुनर्स्थापित करने के लिए:

android:adjustViewBounds="true" 

मैं भी imageView की ऊंचाई को बदल देंगे तो यह स्क्रीन पर आ जाएगा और अपने बार बलों हमेशा नीचे रहने के लिए:

android:layout_height="0dip" // faster than match_parent for weight 
android:layout_weight="1.0" 
संबंधित मुद्दे