ANDROID自定义控件实现刮刮卡效果例子

[复制链接]
司马易 发表于 2017-3-19 17:00:05 | 显示全部楼层 |阅读模式 简体中文繁體中文

广州市

刮刮奖无非就是文本、或者图片、提前绘制一下、然后在其上绘制刮奖层、然后把用户触摸绘制上去、这样消失以后就能看到背后的奖了、整个应用是基于一个建议的画板实现的、我们的刮刮卡需要掌握绘图、当然了这里不要求你有美术天分、会瞎涂鸦就可以了
刮刮卡效果
首先在背后绘制一张图片、然后绘制一个遮盖层、然后我们绘画的过程就是擦除遮盖层
@Override
protected void onMeasure(int widthMeasureSpec,
        int heightMeasureSpec)
{
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int width = getMeasuredWidth();
    int height = getMeasuredHeight();
    // 初始化bitmap
    mBitmap = Bitmap.createBitmap(width, height,
                Config.ARGB_8888);
    mCanvas = new Canvas(mBitmap);
    setUpOutPaint();
    //绘制这改成
    mCanvas.drawColor(Color.parseColor("#c0c0c0"));
}
我们准备把奖项改为字体、将字体绘制在屏幕的中间、那么直接把上例绘制图片改为绘制字体就行了、不过多了一个绘制字体画笔的设置
private Paint mBackPint = new Paint();
private Rect mTextBound = new Rect();
private String mText = "500,0000,000";
//初始化canvas的绘制用的画笔
private void setUpBackPaint()
{
    mBackPint.setStyle(Style.FILL);
    mBackPint.setTextScaleX(2f);
    mBackPint.setColor(Color.DKGRAY);
    mBackPint.setTextSize(22);
    mBackPint.getTextBounds(mText, 0,
                mText.length(), mTextBound);
}

@Override
protected void onDraw(Canvas canvas)
{
    // canvas.drawBitmap(mBackBitmap, 0, 0, null);
    //绘制奖项
    canvas.drawText(mText, getWidth() / 2
                - mTextBound.width() / 2,
            getHeight() / 2 + mTextBound.height()
                        / 2, mBackPint);

    drawPath();
    canvas.drawBitmap(mBitmap, 0, 0, null);
}
好了、到此已经完全实现了、大家按照例子、结合自己需求修改即可、里面所涉及的原理相信已经解释清楚了、如果没有理解的也没有关系、下面我把源代码分享给大家
源代码下载链接:http://dwtedx.com/download.html?bdkey=s/1i3DYT4h 密码:jarr

回复

使用道具 举报

舒展 发表于 2017-6-11 15:22:17 | 显示全部楼层 简体中文繁體中文

广州市

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录/Log in | 注册/Sign up

本版积分规则

恶趣味 ( 粤ICP备15065270号

GMT+8, 2017-8-17 17:49

WWW.EQUWEI.COM

© 2001-2016