2012-11-09 9 views
6

Ho un'immagine 8x8. (bitmap - può essere modificato)Modello di pennello personalizzato Android/immagine

Quello che voglio fare è essere in grado di disegnare una forma, dato un oggetto Path e Paint sul mio SurfaceView.

Al momento tutto ciò che posso fare è riempire la forma con un colore solido. Come posso disegnarlo con un motivo.

Example

Nell'immagine si può vedere la forma della spazzola (La croce). Può essere qualsiasi cosa, da una croce a una ciambella o un elfo.

Come potrei fare per disegnare questo motivo di sfondo.

Alla fine voglio anche applicare dei colori.

Finora, la mia teoria è quella di creare un'area di clip della forma e affiancare le bitmap fino a coprire l'area, ma si tratta di un estremo eccessivo durante l'elaborazione. Né suono ideale

In termini di colorazione, posso modificare i pennelli per essere alfa, riempire lo stesso con il colore di sfondo, quindi disegnare le immagini in alto. Il vero problema è la piastrellatura di tali modelli.

Ive ha trovato alcune domande di natura simile, tutte senza risposta e/o non applicabili alla mia situazione. (uso di xmls sulle viste ecc.)

risposta

18

Hai controllato questo blog. Il suo utilizzo BitmapShader

Esempio:

//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

Ogni suggerimento per quanto riguarda il problema di prestazioni? Poiché stai disegnando rapidamente bitmap sull'area di disegno, ciò porterà a un'interfaccia utente pesante. Causando prestazioni molto lente. –

Problemi correlati