2017-08-03 3 views
0

Ich habe eine Anwendung, wo ich Canvas für die digitale Signatur verwenden.Mein canvas.drawtext() funktioniert nicht

Die Leinwand funktioniert gut, aber ich möchte auch auf der Leinwand bereits einen Text haben, der würde sagen - Signed on DD: MM: YYYY, HH: MM. Ich weiß, wie man einen Kalender benutzt und ein Datum setzt, aber die Reihenfolge canvas.drawtext() funktioniert nicht. Irgendwelche Ideen, was ich falsch mache?

PS - Alles andere funktioniert gut, ich möchte nur diesen Text hinzufügen. :)

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()); 
      } 
     } 

Antwort

1

Sie zeichnen Ihre Ansicht über den Text.

v.draw (Leinwand) vor canvas.drawText ändern

+0

Vielen Dank! –