Android刮刮卡特效

来源:互联网 发布:php小数转整数 编辑:程序博客网 时间:2024/04/27 19:42
package com.example.xfermodeview;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class XfermodeView   extends View{private Bitmap mBgBitmap;  //定义背景private Bitmap mFgBitmap;//定义上层图片private Paint mPaint;//定义画笔private Canvas mCanvas; //定义画布private Path  mPath;//定义手指移动轨迹public XfermodeView(Context context, AttributeSet attrs) {super(context, attrs);init();}private void init() {mPaint=new Paint();mPaint.setAlpha(0);mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));mPaint.setStyle(Paint.Style.STROKE);mPaint.setStrokeJoin(Paint.Join.ROUND);  //让笔触和连接处更原滑mPaint.setStrokeWidth(50);mPaint.setStrokeCap(Paint.Cap.ROUND);mPath=new Path();mBgBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.qq);mFgBitmap=Bitmap.createBitmap(mBgBitmap.getWidth(),mBgBitmap.getHeight(),Bitmap.Config.ARGB_8888);mCanvas=new Canvas(mFgBitmap);mCanvas.drawColor(Color.GRAY);}@Overridepublic boolean onTouchEvent(MotionEvent event) {switch(event.getAction()){case MotionEvent.ACTION_DOWN:mPath.reset();mPath.moveTo(event.getX(),event.getY());break;case  MotionEvent.ACTION_MOVE:mPath.lineTo(event.getX(),event.getY());break;}mCanvas.drawPath(mPath, mPaint);invalidate();return true;}@Overrideprotected void onDraw(Canvas canvas) {canvas.drawBitmap(mBgBitmap, 0,0, null);canvas.drawBitmap(mFgBitmap, 0,0, null);}}

0 0
原创粉丝点击