0

タッチイベントを使用して、ユーザーが画面上で作成したものから画像を作成しようとしています。キャンバス全体をビットマップとして保存したくありません。ユーザーが描いた図だけを保存したい。パスをビットマップとして保存したい。

助けてください。

public class DoodleEngine extends View {
private Paint paint = new Paint();
private Path path = new Path();

public DoodleEngine(Context context, AttributeSet attrs) {
super(context, attrs);

paint.setAntiAlias(true);
paint.setStrokeWidth(6f);
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
}

@Override
protected void onDraw(Canvas canvas) {

  canvas.drawPath(path, paint);

}

@Override
public boolean onTouchEvent(MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:

  path.reset();
  invalidate();
  path.moveTo(eventX, eventY);
  return true;
case MotionEvent.ACTION_MOVE:
  path.lineTo(eventX, eventY);


  break;
case MotionEvent.ACTION_UP:
  // nothing to do
  break;
default:
  return false;
}

// Schedules a repaint.
invalidate();
return true;
}
} 
4

1 に答える 1

0

この方法で試してみてください...

  • を使用して Bitmap のインスタンスを作成しますBitmap.createBitmap()。そのためにいくつかの寸法を計算する必要がある場合があります。

  • Canvas(Bitmap)コンストラクターを使用して、このビットマップを指すキャンバス インスタンスを作成します。

  • 新しいキャンバスへの道だけを描く

  • ビットマップを使用する

于 2013-02-14T21:38:29.943 に答える