Android自定义控件实现刮刮卡效果例子
2014-10-28 13:16:54  By: dwtedx

刮刮奖无非就是文本、或者图片、提前绘制一下、然后在其上绘制刮奖层、然后把用户触摸绘制上去、这样消失以后就能看到背后的奖了、整个应用是基于一个建议的画板实现的、我们的刮刮卡需要掌握绘图、当然了这里不要求你有美术天分、会瞎涂鸦就可以了

刮刮卡效果

首先在背后绘制一张图片、然后绘制一个遮盖层、然后我们绘画的过程就是擦除遮盖层

@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

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+