2012-07-12 3 views
1

문자열을 나타내는 Path 객체를 검색하는 방법을 찾을 수 없습니다. 그것이 존재합니까? 필요한 포인트의 목록으로 충분하지만, 내부적으로 경로가 사용 된 것 같습니다.문자열의 (Android.Graphics) 경로 얻기

GDI 예를 들어 +있다 :

GraphicsPath p = new GraphicsPath(); 
p.AddString("string"); 

은 "그린 문자열"의 어느 지점이 액세스되고 변경 될 캔.

추신 : 나는 경로를 따라 텍스트를 그리는 것을 의미하지 않습니다.

+1

예를 들어'R.string.myString'을 의미합니까? – DroidBender

+0

정확한 문제는 무엇입니까? – sunil

+0

아니요 아니요 아니요. 나는 캔버스에 그림을 그렸습니다. Canvas.DrawPath()와 같습니다. 그려진 글자를 나타내는 경로 객체를 얻고 싶습니다. –

답변

2

나는 OpenGL에서 벡터화 된 텍스트를 그리기 위해이 문제를 해결하는 데 오랜 시간을 투자했으며 libSkia 소스를 깊이 파고 들어야했습니다. 그리고 매우 간단합니다.

실제로 캔버스는 경로를 내부적으로 사용하며 SkPaint의 getTextPath() 메서드를 사용하여 텍스트를 벡터 경로로 변환합니다. 다행히 공공 API에서 자바 측에 android.graphics.Paint.getTextPath()으로 노출됩니다. 그 후에 android.graphics.PathMeasure으로 Path back을 읽을 수 있습니다.

정확한 그림 명령을 읽을 수는 없지만 이분법과 같은 것을 사용하여 곡선을 꽤 가깝게 샘플링 할 수 있습니다.

+0

감사합니다. 현재 thia에서 작업 중입니다. – Derekyy