2012-03-07 13 views
5

के अंदर बिटमैप का आकार बदलें वर्तमान में मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं। मैं एक पृष्ठभूमि है कि इस तरह दिखता है के साथ एक पाठ (एक हैडर) बनाना चाहते:एक ड्रॉइंग लेयर-सूची

_______ 
/______/ 

मैं निम्नलिखित कोड है:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape>  
      <gradient 
       android:startColor="@color/jaarkleur" 
       android:centerColor="@color/jaarkleur" 
       android:endColor="#E66C2C00" 
       android:angle="0" /> 
      <stroke android:width="1dp" 
      android:color="#ff000000" 
      />  
     </shape> 
    </item> 
    <item> 
     <bitmap android:src="@drawable/overlay_left" android:gravity="left" /> 
    </item> 
    <item> 
     <bitmap android:src="@drawable/overlay_right" android:gravity="right" /> 
    </item> 

</layer-list> 

तो मैं एक transparant त्रिकोण हैं, जिसके साथ इतना छवियों के लिए किए गए दोनों सिरों पर रखा गया।

यह केवल एक लाइन के साथ हेडर के लिए ठीक काम करता है, लेकिन जब एक हैडर दो पंक्तियों तक ले जाता है यह इस तरह दिखता है:

http://i.imgur.com/lDQGo.png

तो मेरे सवाल है: तो दिखता है दोनों छवियों का आकार करने के लिए क्या यह संभव है सही ढंग से? धन्यवाद!

+0

आप एक 9-पैच का उपयोग कर में देखा है? – dmon

+0

हां, लेकिन मैं 9-पैच का उपयोग नहीं करना चाहता, मैं 'आंतरिक' रंग परिवर्तक रखना चाहता हूं। – user1255553

उत्तर

10

मैंने इसे दो (आधा-पारदर्शी) छवियों का उपयोग करके हल किया जो कोनों का प्रतिनिधित्व करते हैं।

एक्सएमएल इस तरह दिखता है:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item> 
       <shape>  
        <gradient 
         android:startColor="@color/jaarkleur" 
         android:centerColor="@color/jaarkleur" 
         android:endColor="#E66C2C00" 
         android:angle="0" /> 
        <stroke android:width="1dp" 
      android:color="#ff000000" 
      />  
       </shape> 
     </item> 
     <item> 
      <bitmap android:src="@drawable/overlay_left" android:gravity="left|top" /> 
     </item> 
     <item> 
      <bitmap android:src="@drawable/overlay_right" android:gravity="right|bottom" /> 
     </item>   
</layer-list> 
+2

आप 'एंड्रॉइड: गुरुत्वाकर्षण = "दाएं | fill_vertical" 'और' android: gravity = "left | fill_vertical" का उपयोग भी कर सकते हैं ताकि आपके दाएं और बाएं बिटमैप्स को लंबवत रूप से स्केल किया जा सके – grine4ka

1

ग्रेडियेंट/सीमा स्ट्रोक और कस्टम छवि के साथ परत-सूची का उपयोग करने के बजाय, NinePatchDrawable का उपयोग करने पर विचार करें।

एक आसान 9-पैच creater भी है जो एंड्रॉइड एसडीके के साथ आता है।

+0

कारण मैं ढाल रंग का उपयोग करना चाहता हूं क्योंकि चर "jaarkleur" बदल सकता है। एक पूरी नई पृष्ठभूमि-छवि बनाने के लिए बस इस चर को संशोधित करना आसान है। – user1255553

संबंधित मुद्दे