Неправильная позиция Android StaticLayout
Моя проблема - нарисовать большой текст в растровом изображении. При использовании StaticLayout текст не начинается с 0,0 позиции. Я вижу, когда использовать статический макет. Вы должны измерить какую-то позицию и перевести на них холст. Но я не понимаю, какую позицию я рассчитываю?
Скриншот
Код
public static Bitmap overlayTest(List<CapsItem> capsList) {
Bitmap bmOverlay;
try {
CapsItem caps = capsList.get(0);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), Uri.parse(caps.getItemSrc()));
bmOverlay = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bitmap, 0, 0, null);
TextPaint tp = new TextPaint();
tp.setColor(Color.WHITE);
tp.setTextSize(50);
tp.setTextAlign(Paint.Align.CENTER);
tp.setAntiAlias(true);
StaticLayout sl = new StaticLayout(caps.getCapsText(),tp,500, Layout.Alignment.ALIGN_NORMAL,1,0,false);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.RED);
paint.setTextSize(50);
paint.setStrokeWidth(20);
paint.setStyle(Paint.Style.FILL);
Rect rectText = new Rect();
canvas.drawRect(0,0,500,sl.getHeight(),paint);
canvas.translate(0,0);
sl.draw(canvas);
return bmOverlay;
}catch (IOException e){
e.printStackTrace();
}
return null;
}