2013年11月7日木曜日

【アプリ開発】ペイントの描画処理

アプリ「ペイント~simple~」では、
通常のCanvasクラスで用意された関数を使って描画処理を行っています。

ペイントで用意している機能と描画処理について紹介していきます。



描画機能

◎ペン
◎線の描画
◎四角形の描画
◎円の描画
◎テキストの描画
◎ペンキの描画


描画処理

それぞれの機能について、処理を関数化していますので、
それらの関数(メソッド)を紹介していきます。

◎ペン
  まずはペン機能です。
  タッチしてから離すまでの間の軌道を描画します。
  この機能はdrawPathの関数を使用します。


 
    /*******************************************
     * パスを描画
     * 
     * @param  [OUT] Canvas  Canvasクラス
     * @param  [IN.] Path    ペンの軌道
     * @param  [IN.] Color   ペンの色
     * @param  [IN.] int     ペンの太さ
     * @return none
     *******************************************/
    private void DrawPath(Canvas csCanvas, Path DrawPath, Color DrawColor, int nDrawStrokeWidth)
    {
 Paint paint = new Paint();
 paint.setAntiAlias(true);
 paint.setColor(DrawColor);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(nDrawStrokeWidth);
        paint.setStrokeCap(Paint.Cap.ROUND);
        paint.setStrokeJoin(Paint.Join.ROUND);

     // 描画中のパスを描画
     if(null != m_csDrawPath){
      csCanvas.drawPath(DrawPath, paint);
     }
    }

  Canvasクラスと描画するパス、ペンの色と太さを指定してペンを描画します。
  パスはタッチしてからの軌道を記録しておいたものを渡します。






◎線の描画
次に線の描画機能です。
  タッチした点から離すまでの点に線を引きます。
  この機能はdrawLineの関数を使用します。




 
    /*******************************************
     * 線を描画
     * 
     * @param  [OUT] Canvas  Canvasクラス
     * @param  [IN.] PointF  タッチ開始時の位置
     * @param  [IN.] PointF  タッチ中もしくはタッチ終了時の位置
     * @param  [IN.] Color   ペンの色
     * @param  [IN.] int     ペンの太さ
     * @return none
     *******************************************/
    private void DrawLine(Canvas csCanvas, PointF DrawStartPoint, PointF DrawTouchPoint, Color DrawColor, int nDrawStrokeWidth)
    {
 Paint paint = new Paint();
 paint.setAntiAlias(true);
 paint.setColor(DrawColor);
        paint.setStyle(Paint.Style.FILL_AND_STROKE);
        paint.setStrokeWidth(nDrawStrokeWidth);
        paint.setStrokeCap(Paint.Cap.ROUND);
        paint.setStrokeJoin(Paint.Join.ROUND);

     // 描画中のパスを描画
     if(null != m_csDrawRect && !m_csDrawRect.isEmpty()){
      csCanvas.drawLine(DrawStartPoint.x, DrawStartPoint.y,
          DrawTouchPoint.x, DrawTouchPoint.y, paint);
     }

    }

  Canvasクラスと描画する線の開始位置と終了位置、線の色と太さを指定して線を描画します。
  


その他の機能は、眠気がピークのためまた後日~(;・∀・)

0 件のコメント:

コメントを投稿