2012-04-21 22 views
5

मैं एक पृष्ठभूमि छवि है कि तीन अलग-अलग छवियों में विभाजित रहा है:Android एप्लिकेशन पृष्ठभूमि: का उपयोग कर कई छवियों

backgroundTop.png 
backgroundMiddle.png 
backgroundBottom.png 

मैं कैसे एक Android ऐप्लिकेशन में एक पृष्ठभूमि है, जिसमें शीर्ष छवि पर प्रदर्शित किया जाता है लागू करने के बारे में जाना आवेदन के शीर्ष, और नीचे की निचली छवि, और बीच की छवि के बीच में टाइल किया गया है? यह निश्चित रूप से इस बात पर निर्भर करेगा कि स्क्रीन पर कितनी सामग्री लोड की गई है - वेब पेजों की तरह।

दूसरे शब्दों में, मध्य छवि टाइल किए जाने की कुल संख्या स्क्रीन पर मौजूद होने पर निर्भर करती है।

मैं एक ही छवि यहाँ से बाहर एक खपरैल पृष्ठभूमि लागू करने के लिए एक समाधान देखा है: How to make android app's background image repeat

अगर आप एक ही चित्र का उपयोग कर रहे हैं, लेकिन एक से अधिक चित्रों के साथ नहीं ठीक काम करता है। नीचे दिए गए उदाहरणों को

लिंक तो आप जानते हैं कि मैं क्या मतलब है:

http://rockfreaks.net/images/reviewPageTop.png

http://rockfreaks.net/images/reviewPageMiddle.png

http://rockfreaks.net/images/reviewPageBottom.png

उत्तर

9

लगता है कि तुम layer list drawable के संयोजन की कोशिश कर सकते के साथ (यह परतों के लिए सन्निवेश स्थापित करने के लिए संभव है) एक टाइलयुक्त बिटमैप ड्रायबल जिसे एक मध्यम परत के रूप में रखा जाता है और उपयुक्त इन्सेट के साथ रखा जाता है।

कुछ इस तरह:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/page_top" /> 
    <item 
    android:insetTop="@dimen/page_top_height" 
    android:insetBottom="@dimen/page_bottom_height" 
    > 
    <bitmap 
     android:src="@drawable/page_middle_tile" 
     android:tileMode="repeat" 
     /> 
    </item> 
    <item android:drawable="@drawable/page_bottom" /> 
</layer-list> 

लेकिन यह सब अपने लेआउट पर वास्तव में निर्भर करता है। android:gravity="TOP" और "BOTTOM" साथ

शीर्ष और दो लेआउट में नीचे: इस तरह

+0

अच्छा, मुझे यह पसंद है अगर यह काम करता है। – Blundell

+0

मैं एक अलग समस्या के लिए समाधान की तलाश में था, और आपने जवाब देने में भी मेरी मदद की। एक परत सूची का उपयोग करना कई परिदृश्यों में एक अच्छा विचार है, साझा करने के लिए धन्यवाद! – Stan

0

कोशिश कुछ। ये दो लेआउट android:background="@drawable/xxx.png"

केंद्र के लिए, या तो आपके समाधान का उपयोग करें या शायद स्क्रॉलव्यू का उपयोग करें।

1

पृष्ठभूमि को मध्य छवि के रूप में सेट करें और इसे टाइल करें। (जैसा कि आप दिखाते हैं उदाहरण में)

प्रत्येक पृष्ठ के शीर्ष पर डालने वाला हेडर व्यू बनाएं।

प्रत्येक पृष्ठ के नीचे डालने वाला एक पाद लेख देखें।

और अपनी सामग्री मध्य में रखें।

मैंने इसे यहां एक सपाट फ़ाइल बना दी है, लेकिन आप आसानी से इसे includes, या जो भी आपके आवेदन की ज़रूरत है, में इसे पुन: सक्रिय करने की कल्पना कर सकते हैं।

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00FF00" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="100dip" 
     android:layout_alignParentTop="true" 
     android:background="#FF0000" /> 

    <!-- Your content --> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="100dip" 
     android:layout_alignParentBottom="true" 
     android:background="#0000FF" /> 

</RelativeLayout> 
  • लाल = हैडर
  • हरा = टाइलें (जो आपके विषय से विरासत में मिली थी)
  • ब्लू = पाद

enter image description here

+0

यह लगभग काम करता है। समस्या यह है कि लाल और नीले हिस्से हरे रंग की पृष्ठभूमि के 'शीर्ष पर' हैं। यह इरादे से एक साथ विलय नहीं करता है, आप स्पष्ट रूप से देख सकते हैं कि पृष्ठभूमि छवि के शीर्ष पर दो छवियां हैं। उदाहरण: http://peecee.dk/uploads/042012/device-2012-04-21-174830_big_thumb.png –

+0

आह लेकिन फिर यह आपके संसाधनों में एक समस्या बन जाता है। यदि आप खींचने योग्य क्षेत्रों को परिभाषित करने के लिए शीर्षलेख और पाद लेख को 9patch करते हैं और सही टाइल आकार पर बीच को टाइल करते हैं तो आपको उन्हें सहजता से एकीकृत करने के लिए मिलना चाहिए। ** सैद्धांतिक रूप से ** – Blundell