2017-08-03 13 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)to before canvas.drawText

+0

ありがとうございました! –

関連する問題