2012-03-14 4 views
2

라이브 배경 화면에 배경 이미지가있는 텍스트를 그려 봅니다. 투명하게 캔버스에 색을 그려서 배경 이미지를 덮지는 않지만 어떤 이유로 캔버스에 텍스트를 그리지 않습니다.Canvas.drawText()가 작동하지 않습니다.

내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?

paintText = new Paint(); 
paintText.setColor(Color.WHITE); 
paintText.setStyle(Style.FILL); 
paintText.setAntiAlias(true); 
paintText.setTextSize(20); 

canvas.drawColor(Color.TRANSPARENT); 
canvas.drawText(String.valueOf(Points) + " Points", 50, 50, paintText); 
+0

흠, 무엇을 Color.WHITE 대신 Color.TRANSPARENT 어떻습니까? – Coffee

+1

나는 Color.WHITE를 시도하고 Color.BLACK으로 텍스트 색상을 바꿨지 만 나는 텍스트가없는 완전한 흰색 화면을 얻는다. – Gatekeeper

+0

@Gatekeeper는'drawText()'다음에이'canvas.restore();를 넣습니다. –

답변

2

난 당신이 텍스트를 그리기 전에

canvas.drawColor(Color.TRANSPARENT); 

필요하지 않습니다 말할 것입니다. 당신은 그것없이 시도 했습니까?

+0

그냥 시도하지 않고 아무것도 시도하지 않았습니다. canvas.drawBitmap (bmp, 0, 0, paint)을 사용하면 문제가됩니다. 이 모든 것 바로 전에? 텍스트를 추가하기 전에 캔버스에 단색을 그려야하지만 내 비트 맵을 덮어 씌울 필요가 있다고 설명한 몇 가지 자습서를 보았습니다. – Gatekeeper

+0

캔버스가 이미지 뷰 오른쪽에 있습니까? drawtext 메서드 다음에 imageview에서 .invalidate()를 호출 할 수 있습니까? – Vossi

+0

저는 라이브 배경 화면에있어 캔버스는 제가 믿는 캔버스입니다. 캔버스 = 새로운 캔버스(); – Gatekeeper

1

업데이 트 코드 :

paintText = new Paint(); 
paintText.setColor(Color.WHITE); 
paintText.setStyle(Style.FILL); 
paintText.setAntiAlias(true); 
paintText.setTextSize(20); 
canvas.save(); // 
canvas.drawColor(Color.TRANSPARENT); 
canvas.drawText(String.valueOf(Points) + " Points", 50, 50, paintText); 
canvas.restore(); // 
관련 문제