PaintView.java
package com.example.t101_penview;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
public class PenView extends View {
private float oldx = 0f;
private float oldy = 0f;
private Bitmap bmp = null;
private Canvas bmpCanvas;
private Paint paint;
public PenView(Context context) {
super(context);
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStrokeJoin(Paint.Join.ROUND);
}
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
bmpCanvas = new Canvas(bmp);
}
public void onDraw(Canvas canvas) {
canvas.drawBitmap(bmp, 0, 0, null);
}
public boolean onTouchEvent(MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
oldx = e.getX();
oldy = e.getY();
break;
case MotionEvent.ACTION_MOVE:
bmpCanvas.drawLine(oldx, oldy, e.getX(), e.getY(), paint);
oldx = e.getX();
oldy = e.getY();
invalidate();
break;
default:
break;
}
return true;
}
}
package com.example.t101_penview;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.LinearLayout;
public class Main extends Activity {
Context context;
LinearLayout base;
@Override
protected void onCreate(Bundle savedInstanceState) {
TODO
super.onCreate(savedInstanceState);
context = getApplicationContext();
base = new LinearLayout(context);
base.setOrientation(LinearLayout.VERTICAL);
setContentView(base);
PenView penview = new PenView(context);
base.addView(penview);
}
}