2012-06-30 21 views
20

मेरे एंड्रॉइड प्रोजेक्ट में, मुझे पूरा यकीन नहीं है कि मेरी पृष्ठभूमि छवि को XML में RelativeLayout रूट तत्व की संपूर्णता कैसे भरें, जो कि स्क्रीन का आकार है। मैं यह सुनिश्चित करना चाहता हूं कि यह सभी पहलू अनुपातों के लिए काम करता है, इसलिए छवि आवश्यकतानुसार लंबवत या क्षैतिज रूप से क्लिप करेगी। क्या कोई जानता है कि इसे आसानी से कैसे किया जाए? मैंने केवल ImageView एस और Button एस के संबंध में प्रश्नों को देखा है, लेकिन वास्तव में सामान्य View एस नहीं है।छवि को भरने के लिए कैसे करें

मेरे एक्सएमएल वर्तमान फ़ाइल:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/enclosing_rl" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background" 
    android:fitsSystemWindows="false"> 
<!-- Other elements --> 
</RelativeLayout> 
+0

नहीं कर सकते हैं बीजी छवि 9ptach png? –

+1

क्षमा करें, लेकिन आपका प्रश्न बिल्कुल सही नहीं है कि आपका छवि आकार ठीक हो गया है और आप स्क्रीन के आकार को किसी मामले के लिए भी दायर कर चुके हैं, इसलिए स्क्रीन छवि को –

उत्तर

51

अपनी छवि को नौ पैच में बदलने के अलावा मुझे नहीं लगता कि यह संभव है। इसके बजाय आप अपने रिलेवेटिवआउट में पहले दृश्य के रूप में एक छवि दृश्य जोड़ सकते हैं। Layout_centerInParent को सत्य पर सेट करें और layout_width और layout_height match_parent पर सेट करें। फिर centerCrop पर स्केल टाइप टाइप करें। यह सुनिश्चित करेगा कि छवि बिना विकृति के स्क्रीन को भरती है, लेकिन स्क्रीन आकार/अभिविन्यास के आधार पर या तो छवि के शीर्ष/नीचे या बाएं/दाएं को काट दिया जा सकता है।

<ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerInParent="true" 
     android:scaleType="centerCrop" 
      android:src="@drawable/background" /> 

RelativeLayout में किसी भी अन्य विचारों, imageView के शीर्ष पर दिखाई देगा जब तक कि यह (जब आप एक्सएमएल में हैं) RelativeLayout में पहली दृश्य है।

+0

'एंड्रॉइड: src =" @ drawable/background "को न भूलें। – pqn

+0

@PremN। हाहा धन्यवाद, मैंने जवाब संपादित किया। – Flynn81

+0

बहुत बहुत धन्यवाद! – DmitryKanunnikoff

11

अपने रेस में एक बिटमैप drawable एक्सएमएल संसाधन बनाएँ/drawable फ़ोल्डर:

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/background" 
    android:tileMode="repeat" /> 

उपयोग कि @ drawable के बजाय पृष्ठभूमि के रूप में drawable/पृष्ठभूमि

+0

तक फैलाएं, मैं वास्तव में इसे टाइल करना नहीं चाहता था, लेकिन आपकी रचनात्मकता के लिए धन्यवाद एक एक्सएमएल बिटमैप का उपयोग करने में इनपुट। – pqn

+0

धन्यवाद नोबू, यह वही था जो मैं ढूंढ रहा था! – zabawaba99

4

इस answer के अनुसार यदि आप चाहते हैं अपने ImageView भरने अपने RelativeLayout, ImageView के लिए align मापदंडों का उपयोग करें।

आप अपनी पृष्ठभूमि ImageView करने के लिए एक LinearLayout और align सेट पैरामीटर के लिए अपने विचारों के सभी रख सकते हैं:

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/my_background" 
     android:scaleType="centerCrop" 
     android:layout_alignTop="@+id/my_views" 
     android:layout_alignBottom="@+id/my_views" 

     /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/my_views" 
     android:orientation="vertical" > 
    <!-- stuff --> 
    </LinearLayout> 


</RelativeLayout> 
संबंधित मुद्दे