Android源碼下載:屏幕畫筆Demo
作者:佚名
該Demo主要以當前桌面為背景,完成畫筆的相關功能。1、畫筆的添加、移除等功能;2、針對不同的生命周期,響應不同的桌面背景。
功能分類:工具
支持平臺:Android
運行環(huán)境:Eclipse
開發(fā)語言:Java
開發(fā)工具:Eclipse
源碼大?。?0.93KB
源碼下載地址:http://down.51cto.com/data/1984802
源碼簡介
該Demo主要以當前桌面為背景,完成畫筆的相關功能。
1、畫筆的添加、移除等功能;
2、針對不同的生命周期,響應不同的桌面背景。
源碼運行截圖
桌面背景,進行涂鴉
返回鍵撤銷畫筆路徑
home,切換背景后,繼續(xù)涂鴉
畫筆涂鴉
源碼片段
- public ScreenPaintView(Context context, int w, int h) {
- super(context);
- screenWidth = w;
- screenHeight = h;
- mBitmap = Bitmap.createBitmap(screenWidth, screenHeight,
- Bitmap.Config.ARGB_8888);
- // 保存一次一次繪制出來的圖形
- mCanvas = new Canvas(mBitmap);
- mBitmapPaint = new Paint(Paint.DITHER_FLAG);
- mPaint = new Paint();
- mPaint.setAntiAlias(true);
- mPaint.setStyle(Paint.Style.STROKE);
- mPaint.setStrokeJoin(Paint.Join.ROUND);// 設置外邊緣
- mPaint.setStrokeCap(Paint.Cap.SQUARE);// 形狀
- mPaint.setStrokeWidth(8);// 畫筆寬度
- mPaint.setColor(0xFF2145FF);// 畫筆顏色
- savePath = new ArrayList<drawpath>();
- }
- @Override
- public void onDraw(Canvas canvas) {
- canvas.drawColor(0x0FFFFFFF);
- // 將前面已經畫過得顯示出來
- canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
- if (mPath != null) {
- // 實時的顯示
- canvas.drawPath(mPath, mPaint);
- }
- }
- private void touch_start(float x, float y) {
- mPath.moveTo(x, y);
- mX = x;
- mY = y;
- }
- private void touch_move(float x, float y) {
- float dx = Math.abs(x - mX);
- float dy = Math.abs(mY - y);
- if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
- // 從x1,y1到x2,y2畫一條貝塞爾曲線,更平滑(直接用mPath.lineTo也是可以的)
- // 由此就可以制作各種畫筆
- mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
- mX = x;
- mY = y;
- }
- }
- private void touch_up() {
- mPath.lineTo(mX, mY);
- mCanvas.drawPath(mPath, mPaint);
- // 將一條完整的路徑保存下來(相當于入棧操作)
- savePath.add(dp);
- mPath = null;// 重新置空
- }</drawpath>
責任編輯:閆佳明
來源:
網絡整理