0

캔버스를 사용하여 여러 개의 텍스처를 그렸습니다. 이 텍스쳐들은 직사각형들입니다. 그래서이 텍스쳐들을 보이지 않게 그 부분들과 함께 사용하고 싶습니다. 그래서 다른 색으로 같은 그림을 추가하지 않고 같은 텍스쳐를 다른 색으로 갖도록 텍스쳐 뒤에 배경색을 그릴 수있었습니다. 나는 이런 식으로의 구형을 추가하려고 : | 1 XS의 = 0을 가질 수안드로이드가 배경 색상으로 여러 개의 Rect를 그립니다.

for(Coordinate c : ch.getVisibleCoords()) { 
    ShapeDrawable sD = new ShapeDrawable(); 
    Rect r = new Rect(c.getxS(), 
         c.getyS(), 
         (sh.getScreenWidth()-c.getxS()-sh.getTSize()), 
         (sh.getScreenHeight()-c.getyS()-sh.getTSize())); 
    sD.setBounds(r); 
    textureColorRects.add(sD); 
} 

각 XS와 YS 값은 화면에서 위치입니다 질감을 나타내는 좌표, 예를 들어 1 좌표 | yS = 0 및 2 | 1 xS = 48 (48 = 텍스처 크기) | yS = 0이다. ShapeDrawable 및 Rectangle 자체를 사용하여이 작업을 시도했습니다. 첫 번째 경우에는 동일한 색상으로 하나의 y- 선이 필요하고, 다른 경우에는 버그가있는 붓글씨가 그려집니다. 다른 방법이 있습니다 또는 그 사각형을 설치하는 방법을 이해하지 못했을 수 있습니다, 나는 그 방법을 알아낼 수 없다 왼쪽 위, 오른쪽, 아래 물건이 작동합니다.

textureColorRects
int i = 0; 
for(Coordinate c : ch.getVisibleCoords()) { 
    ShapeDrawable sD = textureColorRects.get(i); 
    Paint color = new Paint(); 
    color.setColor(c.getLandscape().getType().getColor()); 
    color.setStyle(Paint.Style.FILL); 
    sD.getPaint().set(color); 
    sD.draw(canvas); 
} 

모든 ShapeDrawables를 포함하는 목록입니다 : 당신은 내가 ShapeDrawables을 그리는 방법을 볼 수 있도록 코드의 나머지는 당신을 위해 여기에있다.

읽어 주셔서 감사합니다.

답변

0

다른 사람들도 가지고있는 문제가 해결책을 찾았습니다. (찾기가 어려웠습니다) Rect이 왼쪽, 위, 오른쪽, 아래쪽의 값을 어떻게 시작하는지 이해하는 것이 어렵습니다. 포인트 예를 들어, 크기 16 * 16의 직사각형과 x = 5 | y = 18의 화면에서 원하는 값을 x + size (5 + 16)로, 아래를 y로 설정해야합니다. + 크기 (18 + 16). lft 및 top은 rect의 왼쪽 위 가장자리 (시작 위치)로 설정할 수 있습니다.

관련 문제