2012-11-09 3 views
6

8x8 이미지가 있습니다. (비트 맵 - 변경 가능)Android 맞춤 브러시 패턴/이미지

PathPaint 개체를 내 SurfaceView에 지정하면 모양을 그릴 수 있습니다.

내가 할 수있는 것은 단색으로 도형을 채우는 것입니다. 어떻게 패턴으로 그릴 수 있습니까?

Example

이미지에서 당신은 브러시 패턴 (크로스)를 볼 수 있습니다. 그것은 십자가에서 도넛이나 엘프에 이르기까지 다양합니다.

이 패턴 배경을 그리려면 어떻게해야합니까?

또한 결국에는 색상을 적용하려고합니다.

지금까지 나의 이론은 모양의 클립 영역을 만들고 영역이 덮일 때까지 비트 맵을 바르는 것이지만 이것은 처리 과정에서 극단적 인 잔인 함을 나타냅니다. 이상적이지는 않다.

색상 지정 측면에서 브러시를 알파로 편집하고 배경색으로 채우고 상단에 이미지를 그립니다. 진짜 문제는 그러한 패턴의 바둑판 식 배열입니다.

필자는 유사한 성격의 몇 가지 질문을 모두 찾았습니다. 답변이 없거나 내 상황에 해당하지 않습니다. (보기에서 xml 사용)

답변

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

성능 문제에 대한 어떤 제안? 캔버스에서 비트 맵을 빠르게 그리기 때문에 UI가 무거워집니다. 성능이 매우 저하되었습니다. –