2011-03-09 6 views
16

캔버스에 TextView를 그리는 방법 안드로이드 ..?캔버스에 TextView를 그리는 방법 안드로이드 ..?

우리는 Canvas.DrawBitmap(), Canvas.drawText()입니다. Canvas에 TextView를 매개 변수로 사용하는 캔버스의 모든 메서드 또는 Canvas에 TextView를 표시하는 다른 메서드가 있습니까?

사실 저는 TextView에 알파벳이 있습니다. 캔버스에있는 알파벳에 그림을 그려야합니다. 협조

답변

42

Textview를 직접 그릴 수는 없지만 레이아웃에 배치하고 레이아웃을 그릴 수는 있습니다. 다음과 같은 것 :

LinearLayout layout = new LinearLayout(context); 

TextView textView = new TextView(context); 
textView.setVisibility(View.VISIBLE); 
textView.setText("Hello world"); 
layout.addView(textView); 

layout.measure(canvas.getWidth(), canvas.getHeight()); 
layout.layout(0, 0, canvas.getWidth(), canvas.getHeight()); 

// To place the text view somewhere specific: 
//canvas.translate(0, 0); 

layout.draw(canvas); 
+2

과 같이 텍스트보기를 그릴 수 있습니다. canvas.getWidth() 대신 MeasureSpec.makeMeasureSpec (canvas.getWidth(), MeasureSpec.EXACTLY)을 사용하여 성공했습니다. 높이도 동일). –

+0

@emidander 많은 친구 덕분에 – Palanivelraghul

+0

TextView를 클릭 할 수있게 할 수 있습니까? onClickListener를 추가하고 있지만 작동하지 않는 것 같습니다. – user3667569

0

Textview를 확장 할 클래스를 만들어야합니다. 그 후에 onDraw 메서드를 오버라이드 (override)합니다. 이 메소드를 사용하면 measure() 호출에 대해

관련 문제