현재 이미지 편집기를 만들고 있는데 canvas.drawText()를 사용하여 이미지 위에 텍스트를 그리려하고 있습니다. 지금까지이 작업을 성공적으로 수행했지만 사용자가 너무 긴 텍스트를 입력하면 텍스트가 페이지의 한 줄에서 계속 나타나며 화면 너비에 맞게 줄 바꿈되지 않습니다. 이 일을 어떻게 하죠? 나는 정적 인 레이아웃을 사용해 보았지만 작동시키지 못했고, 이것을하기위한 튜토리얼을 누군가 가지고 있 었는가?안드로이드 drawText (텍스트 배치 포함)
정적 레이아웃을 사용하여 캔버스에 그리기에 대한 나의 기능 : 나 이미지 아무것도에 그릴 때
public Bitmap createImage(float scr_x,float scr_y,String user_text){
Canvas canvas = new Canvas(image);
scr_x = 100;
scr_y = 100;
final TextPaint tp = new TextPaint(Color.WHITE);
canvas.save();
StaticLayout sl = new StaticLayout("" + user_text, tp, originalBitmap.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
sl.draw(canvas);
return image;
}
좋아, 내 코드를 업데이 트했습니다,하지만 전혀 발생, 나는 아무 생각도 이유가 없다
public Bitmap createImage(String user_text) {
// canvas object with bitmap image as constructor
Canvas canvas = new Canvas(image);
TextPaint tp = new TextPaint();
tp.setColor(Color.RED);
tp.setTextSize(50);
tp.setTextAlign(Align.CENTER);
tp.setAntiAlias(true);
StaticLayout sl = new StaticLayout("" + user_text, tp,
canvas.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
canvas.translate(100, 100);
sl.draw(canvas);
return image;
}
staticlayout은 캔버스에 그리는 데 사용하지 않으시겠습니까?
이 StaticLayout's'의 좋은 사용 예를 들어이 다른 대답을 살펴보십시오 : //stackoverflow.com/a/8369690/293280 –
[캔버스에 여러 줄 텍스트 그리기] 가능한 복제본 (http://stackoverflow.com/questions/6756975/draw-multi-line-text-to-canvas) –