2012-07-22 8 views
8

मेरे पास एक अपारदर्शी पैटर्न (10% अस्पष्टता) है और मुझे इसे कुछ रंगों से संयोजित करने की आवश्यकता है।क्या ड्रॉइंग + रंग पृष्ठभूमि के रूप में उपयोग करना संभव है?

क्या छवि में पृष्ठभूमि रंग सेट करना संभव है?

उत्तर

24

ज़रूर के साथ मिश्रण। बस एक LayerListDrawable का उपयोग करें।

कुछ की तरह:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="#FF00ffff" /> 
     </shape> 
    </item> 
    <item> 
     <bitmap 
      android:src="@drawable/your_tiled_drawable" 
      android:tileMode="repeat" /> 
    </item> 
</layer-list> 

सहेजें कि आपके res/drawables निर्देशिका में, और अपनी पृष्ठभूमि के रूप में उपयोग करें।

अफसोस की बात है, यदि आपका आवेदन अधिक जटिल है, तो कभी-कभी टाइलमोड किसी स्पष्ट कारण के लिए परेशान नहीं होगा। यदि आप इसमें भाग लेते हैं, तो आपको जावा में टाइल मोड को दोबारा जोड़ना होगा।

मैं आमतौर पर अभी भी एक्सएमएल में सेट है, और फिर कुछ ऐसा कार्य करें:

View v = findViewById(R.id.my_view); 
LayerDrawable lld = (LayerDrawable) v.getBackground(); 
BitmapDrawable tiled = (BitmapDrawable) lld.getDrawable(1); 
tiled.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); 
+0

बहुत बढ़िया, मैं के लिए क्या देख रहा था thats। – Signcodeindie

+0

@ एबेंटस्पून, ठीक वही है जो मैं ढूंढ रहा हूं लेकिन छवि फैली हुई है। मैं छवि के पहलू अनुपात को कैसे रखूं? – Euridice01

0

हां।

आप ImageView का उपयोग कर सकते हैं। अपने पृष्ठभूमि रंग को सेट करें और अर्द्ध पारदर्शी छवि को इसके स्रोत के रूप में सेट करें।

आप एक लेआउट के लिए ऐसा करना चाहते हैं, तो उस लेआउट का विस्तार करने और ओवरराइड OnDraw() में, पृष्ठभूमि रंग आकर्षित और अर्द्ध पारदर्शी छवि

Paint p = new Paint(); 
p.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY)); 
संबंधित मुद्दे

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