画画的玩意

来源:互联网 发布:bi数据分析师要会什么 编辑:程序博客网 时间:2024/04/28 12:49

MainActivity 

//本来应该

//setContentView(R.layout.activity_main);

//但是应该修改成以下的代码

setContentView(new PaintView(this));


PaintView类继承一个View类

PaintView   extends          View



//画笔
private Paint mPaint;

public PaintView(Context context) {
super(context);
init();
}


public PaintView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}


public PaintView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}

/**
* 初始化操作
*/
private void init(){
//创建画笔
mPaint = new Paint();
//设置画笔颜色为黑色
mPaint.setColor(Color.BLACK);
//设置描边宽度,也就是画笔粗度
mPaint.setStrokeWidth(30);
//设置字号
mPaint.setTextSize(40);
//加粗
mPaint.setFakeBoldText(true);
//删除线
mPaint.setStrikeThruText(true);

//抖动效果
mPaint.setDither(true);
//消除锯齿痕迹
mPaint.setAntiAlias(true);

//
Typeface font = Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC);
mPaint.setTypeface(font);

}

@Override
protected void onDraw(Canvas canvas) {
//绘制一个圆
// canvas.drawCircle(200, 200, 100, mPaint);
//
// //设置画笔颜色为黑色
// mPaint.setColor(Color.RED);
// canvas.drawText("我爱你中国", 280, 280, mPaint);


int size = mPoints.size();
for (int i = 0; i < size; i++) {
PointF p = mPoints.get(i);
canvas.drawCircle(p.x, p.y, mLineWidth, mPaint);
}
}

private float mLineWidth = 30;
//保存路径
private ArrayList<PointF> mPoints = new ArrayList<PointF>();

@Override
public boolean onTouchEvent(MotionEvent event) {

float x = event.getX();
float y = event.getY();

//记录点击的位置
PointF p = new PointF(x, y);

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//按下状态
case MotionEvent.ACTION_MOVE:
//移动状态
case MotionEvent.ACTION_UP:
mPoints.add(p);
//刷新,调用这个方法会导致onDraw方法再次被执行
invalidate();
//抬起状态
break;
}
return true;
}


0 0
原创粉丝点击