安卓开发之刮刮乐实例教程

刮奖在生活中常常见到,网上现在也有各种各样的抽奖活动,下面我们就要实现一个刮刮乐程序,可以完美满足 大家的虚荣心,哈哈,下面就开始吧,100%中奖的喔!

下面先来看看效果图:

让我们来看看它的布局:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<RelativeLayout

     android:layout_width="match_parent"

     android:layout_height="match_parent" >

     <TextView

          android:id="@+id/textView1"

          android:layout_width="300dp"

          android:layout_height="150dp"

          android:layout_centerHorizontal="true"

          android:layout_centerVertical="true"

          android:background="@android:color/holo_red_dark"

          android:gravity="center"

          android:text="恭喜你,中奖啦!"

          android:textSize="35dp" />

    <net.androidchina.example.guale.EraseView

          android:id="@+id/eraseView1"

          android:layout_width="300dp"

          android:layout_height="150dp"

          android:layout_centerHorizontal="true"

          android:layout_centerInParent="true"

          android:layout_centerVertical="true" />

 </RelativeLayout>

布局很简单,通过相对布局,将文字和view重叠到一起,重点是EraseView这个类的实现,下面一起看看这个类的代码:

首先我们要定义一个画布以及画笔


1

2

3

4

5

6

7

8

9

10

paint = new Paint();

paint.setStyle(Paint.Style.STROKE);

paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));

paint.setAntiAlias(true);

paint.setDither(true);

paint.setStrokeJoin(Paint.Join.ROUND);

paint.setStrokeCap(Paint.Cap.ROUND);

paint.setStrokeWidth(30);

mCanvas = new Canvas(bitmap);

当手指触摸屏幕时,需要触发滑动事件:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

@Override

public boolean onTouchEvent(MotionEvent event) {

     float ax = event.getX();

     float ay = event.getY();

     if (event.getAction() == MotionEvent.ACTION_DOWN) {

          isMove = false;

          path.reset();

          path.moveTo(ax, ay);

          invalidate();

          return true;

     else if (event.getAction() == MotionEvent.ACTION_MOVE) {

          isMove = true;

          path.lineTo(ax, ay);

          invalidate();

          return true;

     }

     return super.onTouchEvent(event);

}

这里需要一个path来记录轨迹,并且需要调用invalidate();来对画布进行重画,会进一步调用onDraw方法:


1

2

3

4

5

6

7

8

9

10

@Override

protected void onDraw(Canvas canvas) {

     if (mCanvas == null) {

           EraseBitmp();

     }

     canvas.drawBitmap(bitmap, 00null);

     mCanvas.drawPath(path, paint);

     super.onDraw(canvas);

}

源码下载:点击下载

时间: 2024-10-04 22:50:40

安卓开发之刮刮乐实例教程的相关文章

微信web开发ui框架制作网页实例教程

框架:微信ui开发框架 范围:开发所有的微信web页面 下载地址:http://www.chtml.cn/topic/show/49 实例一.Button 按钮可以使用a或者button标签.wap上要触发按钮的active态,必须触发ontouchstart事件,可以在body上加上ontouchstart=""全局触发. 按钮常见的操作场景:确定.取消.警示,分别对应class:weui_btn_primary.weui_btn_default.weui_btn_warn,每种场景

【微信公众平台开发】微信刮刮乐,解决三星兼容性问题

刮刮乐jquery插件:wScratchPad 完整项目资源下载:点击打开链接 运用wScratchPad插件很快弄出刮刮乐的效果,代码如下: <!DOCTYPE html> <html> <head> <meta CHARSET="UTF-8"> <title>刮刮乐</title> <script type="text/javascript" src="./inc/jquer

安卓开发_慕课网_百度地图_刮刮涂层效果

学习内容来自“慕课网” 很多电商APP中都有刮刮卡活动,刮开涂层,获取刮刮卡内部信息 原理图: 刮刮卡效果:通过画笔画笔来实现,黄色涂层,蓝色涂层,刮动则将两涂层共有的部分去掉,   就是DstOut对应的 效果 MainActivity.java 1 package com.example.gauguaka; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Menu; 6 7

[cocos2d-js]cc.RenderTexture几种用法(数字图片、刮刮乐效果)

[转]http://blog.csdn.net/realcrazysun1/article/details/42393629 本文基于cocos2d-js 3.0版本引擎开发 RenderTexture用法1:数字图片 通过这张图片实现任意数字 //数字图片精灵 var PictureNumber = cc.Sprite.extend({ m_Number:null, m_NumberTexture:null, ctor:function(){ this._super(); }, buildNu

实现刮刮乐的效果

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } </style> </head> <body> <div id="box">

20行js代码制作网页刮刮乐

分享一段用canvas和JS制作刮刮乐的代码,JS部分去掉注释不到20行代码效果如下 盖伦.jpg 刮刮乐.gif HTML部分 <body> ![](img/gailun.jpg) <canvas id="canvas" width="400" height="300"></canvas> </body> 没什么要特别注意的为了效果加了些CSS样式 CSS部分 <style type=&qu

使用Android Studio进行安卓开发教程

本教程介绍如何创建Android应用程序.它基于Android5.0(Lollipop)介绍Android Studio的用法. 安卓介绍 Android是基于Linux内核的操作系统.负责开发Android系统的项目被为Android Open Source Project (AOSP) ,由谷歌领导. Android系统支持后台处理,提供了丰富的用户界面库,使用的OpenGL标准支持2-D和3-D图形,并允许访问文件系统以及嵌入式SQLite数据库. Android应用包含可见和不可见组件,

安卓开发入门教程全-PopupWindow用法大全

都是一群技术宅,先给大家说一个严酷的现实吧,现在是6月份,多少人顶着大太阳在找工作,现在我们既然有不错的工作或者想通过安卓学好的,我都希望每一个人去实践,就像Android开发入门QQ群:175229978很多人一样,肯去敲代码,不嫌弃麻烦. 首先给大家介绍安卓PopupWindow,不要嫌弃我讲解的有些详细. Android的对话框有两种:PopupWindow和AlertDialog.它们的不同点在于:AlertDialog的位置固定,而PopupWindow的位置可以随意AlertDial

Android环境搭建-安卓开发系列教程(原创)

[面向人员]:立志于安卓开发的所有人员,做到真正的从零基础起步: [教程说明]:本教程在内容上保证原创.简洁.详细,在附件链接上保证可用.最新.完整: [回帖说明]:教程有不清晰的地方,请及时回帖互动,楼主会第一时间更新帖子,谨以此开源.分享.共进. 1.下载最新版JDK(JDK是运行环境) 官方下载地址:    http://www.oracle.com/technetwor ... nloads-2133151.html 小提示:甲骨文官方下载速度比较慢,请耐心等待 网盘下载地址:http: