刮刮乐
来源:互联网 发布:电商源码 java 编辑:程序博客网 时间:2024/06/18 01:41
/**
* Created by MarRn on 2016/6/29.
*/
public class ScrapeView extends View{
//被覆盖的内容图层private Bitmap bpBackground;//用来当做覆盖用的图层private Bitmap bpForeground;//用来当做覆盖用的图层的画布private Canvas mCanvas;//模拟手指头刮开路径的画笔private Paint pathPaint;//手指头刮开的路径private Path path;//用来当做覆盖用的图层的文字画笔private Paint contentPaint;//用来当做覆盖用的图层的文字内容private String content = "刮刮看咯~";public ScrapeView(Context context) { super(context); init();}public ScrapeView(Context context, AttributeSet attrs) { super(context, attrs); init();}private void init(){ //初始化模拟刮开路径的画笔 pathPaint = new Paint(); pathPaint.setAlpha(0); pathPaint.setStyle(Paint.Style.STROKE); pathPaint.setStrokeWidth(50); //取两层绘制交集,显示下层 pathPaint.setXfermode(new PorterDuffXfermode((PorterDuff.Mode.DST_IN))); pathPaint.setStrokeJoin(Paint.Join.ROUND); pathPaint.setStrokeCap(Paint.Cap.ROUND); //初始化模拟手指头刮开的路径 path = new Path(); //初始化被覆盖的内容bitmap bpBackground = BitmapFactory.decodeResource(getResources(),R.drawable.test); //初始化用来当做覆盖用的bitmap bpForeground = Bitmap.createBitmap(bpBackground.getWidth(),bpBackground.getHeight(), Bitmap.Config.ARGB_8888); //初始化画布 mCanvas = new Canvas(bpForeground); //初始化内容画笔 contentPaint = new Paint(); contentPaint.setColor(Color.WHITE); contentPaint.setTextSize(100); contentPaint.setStrokeWidth(20); //设置用来当做覆盖用的图层颜色为灰色 mCanvas.drawColor(Color.GRAY); //在用来当做覆盖用的图层上绘制文字 mCanvas.drawText(content,mCanvas.getWidth()/4,mCanvas.getHeight()/2,contentPaint);}@Overridepublic boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: //清空画笔 path.reset(); //原点移动至手指的触摸点 path.moveTo(event.getX(),event.getY()); break; case MotionEvent.ACTION_MOVE: path.lineTo(event.getX(),event.getY()); break; } //模拟刮来效果 mCanvas.drawPath(path,pathPaint); invalidate(); return true;}@Overrideprotected void onDraw(Canvas canvas) { //绘制两个图层 canvas.drawBitmap(bpBackground,0,0,null); canvas.drawBitmap(bpForeground,0,0,null);}
}
xml文件中的使用:
阅读全文
0 0
- 刮刮乐
- 刮刮乐
- 刮刮乐
- 刮刮乐
- 刮刮乐
- Android刮刮乐
- 刮刮乐效果
- android刮刮乐
- Canvas 刮刮乐
- 刮刮乐开奖
- canvas 刮刮乐
- canvas--刮刮乐
- 刮刮乐小游戏
- canvas-刮刮乐
- HTML5 刮刮乐 例子 DEMO
- android 刮刮乐的实现
- 微信大转盘|刮刮乐
- 刮刮乐demo:flash+php
- netsh命令实现端口转发
- 2017.9.28 NOIP2009提高组初赛C++训练 赛后反思
- IQA基础知识
- @RequestBody注解
- HDU 1062(优先队列+BFS)
- 刮刮乐
- javaWeb 原生图书管理系统
- 人脸检测(三)——Multi-task CNN(MTCNN)
- 第二十六节数据库连接池
- 一个标准的JavaBean应该具有如下几个特点
- 正则表达式匹配
- 信息论:熵与互信息
- hihocoder1586 Minimum 2017icpc北京赛区 线段树区间最值
- ML特遣队