2016-12-27 11 views
1

android.graphics.Paint 메모리 무거운 물체입니까? 캔버스에 그려야하는 클래스에 페인트 객체 리퍼런스를 전달하고 해당 클래스에서 색상, 스타일 등과 같은 페인트 속성을 설정하거나 필요할 때마다 새로운 Paint 객체를 만드는 것이 더 효율적인 방법은 무엇입니까?안드로이드 페인트 객체 메모리 효율성

+0

down-voter는 왜 투표를 취소했는지 설명 할 수 있습니까? 나는 LibGDX로 그리기와 애니메이션 작업 (기본적으로 게임 개발)을했기 때문에이 질문을 던졌습니다. LibGDX는 매우 메모리가 많은 objecy 인 SpriteBatch 객체를 사용합니다. Paint 객체와 같은 것이 아닌가? – Thracian

답변

1

예, Paint은 특히 생성 및 초기화가 무겁습니다. 즉, 동일한 Paint 개체를 모든 용도로 다시 사용해야한다는 의미입니까? 음, 그게 달렸어.

drawText()을 여러 번 수행하지만 색상이 다른 경우 동일한 페인트를 다른 색상 (setColor() 사용)으로 다시 사용할 수 있습니다. 그러나 두 개의 서로 다른 클래스에서 무관 한 두 가지 작업 (드로잉)을 수행하려고 할 때 색상, 글꼴 크기, 스타일, PathEffect 등과 같은 페인트 구성에 큰 차이가있는 경우에는 해당 드로잉을 위해 별도의 Paint 객체를 갖는 것이 좋습니다 .

비슷한 의미로 유사한 그림을 그리기 위해 동일한 페인트를 사용하십시오. 그리고 주요 차이점과 무관 한 도면을 수행하기 위해 다른 페인트 객체를 사용하십시오. 희망이 도움이됩니다.

+0

정확히 내가 무엇을 찾고 있었는지. 고마워, 그것은 나에게 큰 도움이 될 것이다. 왜 그것이 무거운 지 설명해 주시겠습니까? I – Thracian

+0

'Paint.java'를보세요. '네이티브'페인트로 백업됩니다. 따라서 새로운 Paint 객체를 만들 때 네이티브 객체도 생성하게됩니다. – Henry

-1

가장 좋은 방법은 다음과 같습니다. 스타일, 너비 또는 색상이 다른 각 개체에 대해 새 그림을 만듭니다. 그리기 텍스트의 경우 다른 페인트를 만듭니다. (다른 색상이나 텍스트 크기로 텍스트를 그리려면 새 페인트를 만듭니다.)

이 방법은 한 페인트가 하나의 오브젝트를 그리기 때문에 다른 개발자에게 코드를 더 게으른 것으로 만듭니다.