Quantcast
Channel: アンドロイドアプリ開発TIP★STAR » Touch & Draw
Viewing all articles
Browse latest Browse all 6

Viewにタッチで絵を描く[Bitmapに線を書き込む]

0
0

今回はViewにタッチで絵を描きたいと思います。

今回は保持用Bitmapを用意したら、イベントのたびに保持用のBitmapに書き込む仕様で絵を描きたいと思います。いくつか絵を描く方法があるので、重さなど、検証して目的に一番あった仕様を利用してみてください。

Viewでタッチで絵を描く[PathのArrayListで線を保持]

Viewでタッチで絵を描く[Bitmapで線を保持]

AndroidManifest.xmlは

特に変更しません。

レイアウトは直接描画します。描画クラスは

public class TouchPaint extends View {

    private float oldX = 0f, oldY = 0f;
    private Paint paint;

    public TouchPaint(Context context) {
        super(context);
        paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.LTGRAY);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(8);
        paint.setStrokeCap(Paint.Cap.ROUND);
        paint.setStrokeJoin(Paint.Join.ROUND);
    }

    Bitmap _bitmap;
    Canvas _canvas;

    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        _bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
        _canvas = new Canvas(_bitmap);
    }

    public boolean onTouchEvent(MotionEvent e) {
        switch (e.getAction()) {
        case MotionEvent.ACTION_DOWN:
            oldX = e.getX();
            oldY = e.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            _canvas.drawLine(oldX, oldY, e.getX(), e.getY(), paint);
            oldX = e.getX();
            oldY = e.getY();
            invalidate();
            break;
        default:
            break;
        }
        return true;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(_bitmap, 0, 0, null);
    }
}

メインのクラスは

public class TipStarActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TouchPaint _tPaint = new TouchPaint(getApplicationContext());
        setContentView(_tPaint);
    }
}

下記のようになるはずです!


Viewing all articles
Browse latest Browse all 6

Latest Images

Trending Articles





Latest Images