Canvas.drawText未绘制精确位置

时间:2015-03-28 13:38:11

标签: java android android-canvas android-bitmap

这是我的Android应用程序的主要内容:
1.用户从图库中选择图片或从应用程序中选择默认图片 2.图片显示在ImageView中 3.用户点击图片上的任意位置 4.用户输入文字和点击次数'完成'按钮
5.使用Canvas.drawText

在位图上绘制文本

问题:有时不会在用户点击的位置绘制文字。我注意到只有那些大于ImageView的图片才会出现此问题。

这是检索用户点击的坐标的代码:

mImageView.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub

if (event.getActionMasked() == MotionEvent.ACTION_UP) {
    xCoord = event.getX();
    yCoord = event.getY();
    mEditText.setText("");

Toast.makeText(getApplicationContext(), xCoord + ", " + yCoord, Toast.LENGTH_LONG).show();

}

return true;
}
    });

这是在Bitmap上绘制文本的代码:

String text = mEditText.getText().toString();

Paint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
textPaint.setColor(colorId);
textPaint.setTextSize(textSize);
textPaint.setAntiAlias(true);

Bitmap mutable = mBitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(mutable);            

canvas.drawText(text, xCoord, yCoord, textPaint);
mImageView.setImageBitmap(mutable);
mBitmap = mutable;

mEditText.setText("");

我使用的是720x1280,320 dpi仿真器 任何帮助表示赞赏!提前谢谢!

0 个答案:

没有答案