1

주어진 텍스트에 대해 비트 맵을 그릴 필요가있는 상황에 직면하고 있습니다. 필요한 속성을 가진 TextView를 렌더링하고 캔버스를 사용하여 비트 맵을 그려 보려고했습니다. 내 시도는 다음과 같이 보입니다.비트 맵, 정렬 문제에 대한 텍스트 뷰

TextView nameTv = new TextView(context); 
Bitmap bmp = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bmp); 

nameTv.layout(0, 0, 200, 200); 
nameTv.setGravity(Gravity.CENTER); 
nameTv.setText("Test"); 
nameTv.setBackgroundColor(Color.RED); 

nameTv.draw(canvas); 

이 코드의 문제점은 TextView의 텍스트가 가운데 정렬되지 않아서 필요하다는 것입니다. 모든 제안은 환영합니다 :)

감사합니다, 아마르

답변

2

나는 문제가 측정에 생각합니다. 당신은 그것을 측정하지 않으며 그것은 적당한 크기를 가지고 있지 않습니다. layout() 전에 nameTv.measure()를 호출하십시오. 이 같은

전화 측정 :

int measureSpecWidth = MeasureSpec.makeMeasureSpec(200, MeasureSpec.EXACTLY); 
int measureSpecHeight = MeasureSpec.makeMeasureSpec(200, MeasureSpec.EXACTLY); 
nameTv.measure(measureSpecWidth, measureSpecHeight); 
+0

nameTv.measure은() 일을하지 않았다. 이제 텍스트가 가운데가 아닌 오른쪽 상단에 정렬됩니다. – Ammar

+0

측정 방법에 어떤 매개 변수를 전달 했습니까? –

+0

nameTv.measure (200, 200)가 호출되었습니다. – Ammar