Android自定义控件实现刮刮卡效果例子
2014-10-28 13:16:54 By: shinyuu
刮刮奖无非就是文本、或者图片、提前绘制一下、然后在其上绘制刮奖层、然后把用户触摸绘制上去、这样消失以后就能看到背后的奖了、整个应用是基于一个建议的画板实现的、我们的刮刮卡需要掌握绘图、当然了这里不要求你有美术天分、会瞎涂鸦就可以了
首先在背后绘制一张图片、然后绘制一个遮盖层、然后我们绘画的过程就是擦除遮盖层
@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的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛