2017-08-03 160 views
0

我有一個應用程序,我使用Canvas進行數字簽名。我的canvas.drawtext()不起作用

畫布效果很好,但我也希望畫布上已經有一段文字 - 會在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

您正在繪製文本頂部的視圖。

將v.draw(canvas)更改爲canvas.drawText之前

+0

非常感謝! –