我的canvas.drawtext()不起作用

时间:2017-08-03 00:14:56

标签: java android-canvas

我有一个应用程序,我使用Canvas进行数字签名。

画布效果很好,但我也希望在画布上有一个文字可以说 - 签名DD:MM:YYYY,HH:MM。我知道如何使用日历并输入日期,但是canvas.drawtext()的命令不起作用。 我有什么想法我做错了吗?

PS - 其他一切运作良好,我只想添加该文本。 :)

public class signature extends View {
        private static final float STROKE_WIDTH = 5f;
        private static final float HALF_STROKE_WIDTH = STROKE_WIDTH / 2;
        private Paint paint = new Paint();
        private Path path = new Path();

        private float lastTouchX;
        private float lastTouchY;
        private final RectF dirtyRect = new RectF();

        public signature(Context context, AttributeSet attrs) {
            super(context, attrs);
            paint.setAntiAlias(true);
            paint.setColor(Color.BLACK);
            paint.setStyle(Paint.Style.STROKE);
            paint.setStrokeJoin(Paint.Join.ROUND);
            paint.setStrokeWidth(STROKE_WIDTH);
            paint.setTextSize(100);



        }

        public void save(View v, String StoredPath) {
            Log.v("tag", "Width: " + v.getWidth());
            Log.v("tag", "Height: " + v.getHeight());
            if (bitmap == null) {
                bitmap = Bitmap.createBitmap(mContent.getWidth(), mContent.getHeight(), Bitmap.Config.RGB_565);
            }

            Canvas canvas = new Canvas(bitmap);

            canvas.drawText("Example text", 100, 100, paint);

            try {

                // Output the file
                FileOutputStream mFileOutStream = new FileOutputStream(StoredPath);
                v.draw(canvas);
                // Convert the output file to Image such as .png
                bitmap.compress(Bitmap.CompressFormat.PNG, 90, mFileOutStream);
                mFileOutStream.flush();
                mFileOutStream.close();



            } catch (Exception e) {
                Log.v("log_tag", e.toString());
            }
        }

1 个答案:

答案 0 :(得分:1)

您正在文本的顶部绘制视图。

将v.draw(canvas)更改为canvas.drawText

之前