public boolean onTouchEvent(MotionEvent event) {

int action = event。getAction();

//Log.i("TouchPaint", "Intermediate pointer #" + i);

drawPoint(event。getHistoricalX(i), event。getHistoricalY(i),

event。getHistoricalPressure(i),

event。getHistoricalSize(i));

}

drawPoint(event。getX(), event。getY(), event。getPressure(),

event。getSize());

return true;

}

private void drawPoint(float x, float y, float pressure, float size) {

//Log.i("TouchPaint", "Drawing: " + x + "x" + y + " p="

// + pressure + " s=" + size);

mCurX = (int)x;

mCurY = (int)y;

mCurPressure = pressure;

mCurSize = size;

mCurWidth = (int)(mCurSize*(getWidth()/3));

if (mCurWidth < 1) mCurWidth = 1;

if (mCurDown && mBitmap != null) {

int pressureLevel = (int)(mCurPressure*255);

mPaint.setARGB(pressureLevel, 255, 255, 255);

mCanvas.drawCircle(mCurX, mCurY, mCurWidth, mPaint);

mRect.set(mCurX-mCurWidth-2, mCurY-mCurWidth-2,

mCurX+mCurWidth+2, mCurY+mCurWidth+2);

invalidate(mRect);

}

mFadeSteps = 0;

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐