2012-11-09 14 views
6

Mam obraz 8x8. (Bitmapy - można zmienić)Android niestandardowy wzór pędzla/obrazu

Co chcę zrobić, to być w stanie narysować kształt, podany obiekt Path i Paint na moim SurfaceView.

W tej chwili wszystko, co mogę zrobić, to wypełnić kształt jednolitym kolorem. Jak mogę narysować to za pomocą wzoru.

Example

W obrazie można zobaczyć wzór pędzla (Krzyża). Może to być wszystko, od krzyża do pączka lub elfa.

Jak mam zrobić rysowanie tego tła wzoru.

Ja także ostatecznie chcę zastosować kolory do niego.

Do tej pory moja teoria polega na utworzeniu obszaru klipu kształtu i układaniu bitmap, dopóki obszar nie zostanie pokryty, ale jest to ekstremalne przesadne przetwarzanie. Ani nie brzmi idealnie.

Jeśli chodzi o kolorystykę, mogę edytować pędzle jako alfa, wypełnić to samo kolorem tła, a następnie narysować obrazy na wierzchu. Prawdziwym problemem jest układanie takich wzorów.

Znalazłem kilka pytań o podobnym charakterze, wszystkie bez odpowiedzi i/lub nie dotyczy mojej sytuacji. (użycie xmls w widokach itp.)

Odpowiedz

18

Czy sprawdziłeś to blog. Jego użyciu BitmapShader

Przykład:

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

Wszelkie sugestie dotyczące kwestii wydajności? Ponieważ szybko rysujesz bitmapy na płótnie, będzie to prowadzić do ciężkiego interfejsu użytkownika. Powodujące bardzo powolną wydajność. –

Powiązane problemy