【发布时间】:2016-04-20 14:38:52
【问题描述】:
我是 Android 开发的新手,现在正在尝试制作一个简单的应用程序。用户可以选择图像并向其添加文本。用户可以选择不同的字体和文本大小。对于预览,我在 RelativeLayout 中使用 ImageView,创建的文本将从代码添加到布局中(使用 TextView)。当用户按下保存按钮时,图像将与文本一起保存。
Canvas.drawText 中的所有问题。我找不到计算正确 X 和 Y 的好公式。绘制文本后总是在错误的位置。 Y 位置总是因字体而异,X 也会缩进。
这是截图(首先是TextView,下面是图文):
这是我找到位置的代码:
public float[] getPosition(ImageView imageView, TextView textView) {
Matrix matrix = new Matrix();
imageView.getImageMatrix().invert(matrix);
float[] coord = {textView.getX(), textView.getY()+textView.getHeight()};
matrix.mapPoints(coord);
return coord;
}
这里是draw的代码:
float[] coord = bundle.getFloatArray("coord");
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setTypeface(fontsList.get(bundle.getInt("font")));
paint.setAlpha((int)(255*bundle.getFloat("alpha")));
paint.setTextSize(bundle.getFloat("size")*bundle.getFloat("scale"));
paint.setColor(bundle.getInt("color"));
canvas.drawText(text, coord[0],coord[1],paint);
【问题讨论】:
标签: android