2013-06-10 4 views
0

내 넥서스에 이상한 행동을 7 나는에서 캔버스의 중앙에 DrawText에를 사용하여 단일 문자를 그리는 사순 차 TTF를 사용하고있다넥서스 7 4.2.2 캔버스 DrawText에 문자 F와 J 못해 표시

내 자신의 견해. 내 넥서스를 제외하고 테스트 한 모든 모델이 가지고 노력하고 벌금 7

모든 문자는 여전히 낮은 경우 F와 J를 제외하고 작동

나는 4.2.2 에뮬레이터에서 테스트 한 그것은뿐만 아니라 잘 작동 4.0.3, 4.1.2 내가 글꼴을 기본값으로 다시 설정 한 좋은 측정 2.3

와 지금 F 아니라 J.을 그립니다

사람이 같은 문제가 있었거나 다시 만들 수 있습니다?

내 페인트

 textPaint = new Paint(); 
     textPaint.setColor(Color.WHITE); 
     textPaint.setTextSize(650); 
     textPaint.setAntiAlias(true); 
     textPaint.setTextAlign(Align.CENTER); 
     textPaint.setTypeface(font); 
     textPaint.setDither(true); 

캔버스는 onDraw 명령

  canvas.drawText(letter, center, center, textPaint); 

편집 : 내가 할 필요의 크기 (650)를 밝혀졌습니다. 이것을 내렸을 때 효과가있었습니다. 필요한 크기로 어떻게 보관할 수 있습니까?

감사

답변

2

당신은 폰트 캐시에 맞게 너무 큽니다 글꼴 크기를 사용하고 있습니다. 캔버스에서 더 작은 글꼴 크기와 스케일 변형을 조합하여 원하는 효과를 얻을 수 있습니다. 문자를 그릴 뷰에서 소프트웨어 계층 (View.setLayerType() 참조)을 사용할 수도 있습니다.

+0

감사합니다.하지만 4.2.2의 에뮬레이터를 포함한 다른 모든 버전에서 어떻게 작동합니까? 그냥 주위에 놀고 setLayerType – RuAware

+0

setLayerType (View.LAYER_TYPE_SOFTWARE, null); has thank you worked – RuAware

+0

에뮬레이터는 기본적으로 소프트웨어 렌더링으로 실행됩니다. –