2012-11-09 16 views
6

मेरे पास 8x8 छवि है। (बिटमैप - बदला जा सकता है)एंड्रॉइड कस्टम ब्रश पैटर्न/छवि

मैं जो करना चाहता हूं वह Path और Paint ऑब्जेक्ट को SurfaceView पर ऑब्जेक्ट खींचने में सक्षम है।

फिलहाल मैं ठोस रंग के साथ आकार भर सकता हूं। मैं इसे एक पैटर्न के साथ कैसे आकर्षित कर सकता हूं।

Example

छवि में आप ब्रश पैटर्न (क्रॉस) देख सकते हैं। यह एक क्रॉस से डोनट या एल्फ के लिए कुछ भी हो सकता है।

मैं इस पैटर्न पृष्ठभूमि को चित्रित करने के बारे में कैसे जाउंगा।

मैं अंत में रंग भी लागू करना चाहता हूं।

अब तक, मेरा सिद्धांत आकार का एक क्लिप क्षेत्र बनाना है, और क्षेत्र को कवर होने तक बिटमैप्स टाइल करना है, लेकिन यह प्रसंस्करण में चरम ओवरकिल है। न ही आदर्श आदर्श।

रंग के संदर्भ में, मैं ब्रश को अल्फा होने के लिए संपादित कर सकता हूं, पृष्ठभूमि रंग के साथ इसे भर सकता हूं, फिर छवियों को शीर्ष पर खींच सकता हूं। वास्तविक मुद्दे यह इस तरह के पैटर्न की टाइलिंग।

मुझे एक समान प्रकृति के कुछ प्रश्न, सभी अनुत्तरित, और/या मेरी स्थिति पर लागू नहीं हुए। (विचारों पर xmls का उपयोग आदि)

उत्तर

18

क्या आपने यह blog चेक किया था। इसका उपयोग करते हुए BitmapShader

उदाहरण:

//Initialize the bitmap object by loading an image from the resources folder 
    fillBMP = BitmapFactory.decodeResource(m_context.getResources(), R.drawable.cross); 
    //Initialize the BitmapShader with the Bitmap object and set the texture tile mode 
    fillBMPshader = new BitmapShader(fillBMP, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); 

    fillPaint.setStyle(Paint.Style.FILL); 
    //Assign the 'fillBMPshader' to this paint 
    fillPaint.setShader(fillBMPshader); 

    //Draw the fill of any shape you want, using the paint object. 
    canvas.drawCircle(posX, posY, 100, fillPaint); 
+0

प्रदर्शन समस्या के संबंध में कोई भी सुझाव? चूंकि आप तेजी से कैनवास पर बिटमैप्स ड्राइंग कर रहे हैं, इससे भारी यूआई हो जाएगी। बहुत धीमी प्रदर्शन के कारण। –

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