Android刮刮卡效果

来源:互联网 发布:网络教学人物素描视频 编辑:程序博客网 时间:2024/04/25 03:26


package cn.fly.refreshlayout.demo.ui.activity;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.drawable.BitmapDrawable;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.MotionEvent;import android.view.View;/** * Created by Fly0116 on 2016/4/27 0027. */public class GuaGuaCardActivity extends Activity{        int screenWidth = 0;        int screenHeight = 0;        @Override        protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            DisplayMetrics dm  = new DisplayMetrics();            getWindowManager().getDefaultDisplay().getMetrics(dm);            screenWidth = dm.widthPixels;            screenHeight = dm.heightPixels;            setContentView(new GuaGuaKa(this));        }        class GuaGuaKa extends View {            private Canvas mCanvas = null;            private Path mPath = null;            private Paint mPaint = null;            private Bitmap bitmap = null;            public GuaGuaKa(Context context) {                super(context);                init(context);            }            private void init(Context context) {                setBackground();                mPath = new Path();                bitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888);                mPaint = new Paint();                mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);                mPaint.setAntiAlias(true);                mPaint.setDither(true);                mPaint.setStyle(Paint.Style.STROKE);                mPaint.setStrokeWidth(10);                mPaint.setStrokeCap(Paint.Cap.BUTT.ROUND);                mPaint.setStrokeJoin(Paint.Join.ROUND);                mPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));                mPaint.setAlpha(0);                mCanvas = new Canvas(bitmap);                mCanvas.drawColor(Color.GRAY);            }            private void setBackground() {                Paint paint = new Paint();                Bitmap bitmap = Bitmap.createBitmap(screenWidth,screenHeight, Bitmap.Config.ARGB_8888);                paint.setTextSize(30);                paint.setColor(Color.BLACK);                paint.setFlags(Paint.ANTI_ALIAS_FLAG);                paint.setAntiAlias(true);                Canvas canvas = new Canvas(bitmap);                canvas.drawColor(Color.WHITE);                canvas.drawText("谢谢惠顾", 100, 100, paint);                canvas.drawText("再来10", 100, 250, paint);                setBackgroundDrawable(new BitmapDrawable(getResources(), bitmap));            }            @Override            protected void onDraw(Canvas canvas) {                super.onDraw(canvas);                mCanvas.drawPath(mPath, mPaint);                canvas.drawBitmap(bitmap, 0, 0, null);            }            int x = 0;            int y = 0;            @Override            public boolean onTouchEvent(MotionEvent event) {                int action = event.getAction();                int currX = (int) event.getX();                int currY = (int) event.getY();                switch(action){                    case MotionEvent.ACTION_DOWN:{                        mPath.reset();                        x = currX;                        y = currY;                        mPath.moveTo(x, y);                    }break;                    case MotionEvent.ACTION_MOVE:{                        mPath.quadTo(x, y, currX, currY);                        x = currX;                        y = currY;                        postInvalidate();                    }break;                    case MotionEvent.ACTION_UP:                    case MotionEvent.ACTION_CANCEL:{                        mPath.reset();                    }break;                }                return true;            }        }    }}

0 0
原创粉丝点击