Android 撕衣服(刮刮乐游戏)
来源:互联网 发布:spss数据分析怎么用 编辑:程序博客网 时间:2024/04/20 10:58
项目简介:
该项目为撕衣服,类似刮刮乐游戏
详细介绍:
用户启动项目后,加载一张图片,当用户点击图片的时候,点击的一片区域就会消失,从而显示出在这张图片下面的图片
这个小游戏类似与刮奖一样,刮开涂层就会显示文字。
这里则是撕掉美女身上的衣服,漏出里面的图片。
该应用涉及到的知识有:
- 1.如何实现画图功能
- 2.如何把像素点变为透明色
- 3.如何监听手机对屏幕的操作
主要有触击,滑动,离开三种情况
注意:
- 1.一定要注意在设置像素点的时候,范围不能超过当前控件的范围
- 2.设置ImageView最好设置为wrap_content,如果设置为match_parent,可能导致图片旁边留白,影响定位
例如:如果图片宽距离ImageView组件为20dp(即图片两遍的留白为20dp),当手指移动到(36,0)位置时候,根据该题代码,可以计算出:
实际上是把以(16,0)为圆心,半径为8的圆形区域的像素点颜色变为透明色,而不是(36,0)附近
步骤:
1.创建一个android的项目,编写activity_main.xml文件的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="hhh.exercise.smultimedia_d.MainActivity" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/aneiyi" /> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
这里实际上就是创建两个ImageView控件,并且两个控件重叠在一起,界面如下所示:
2.编写MainActivity代码:
import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.ImageView;public class MainActivity extends Activity { private ImageView iv; private Bitmap bmCopy; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); // 创建只读的Bitmap对象 Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.awaiyi); bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig()); // 创建Paint对象 Paint paint = new Paint(); // 创建Canvas对象 Canvas canvas = new Canvas(bmCopy); // 开始绘画 canvas.drawBitmap(bmSrc, new Matrix(), paint); // 加载最外层图片 iv.setImageBitmap(bmCopy); // 设置触摸侦听 iv.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: // 获取当前手指所在的坐标 int x = (int) event.getX(); int y = (int) event.getY(); // 取当前坐标的一片区域(这里以点钱坐标为原点,半径为5的做一个圆形区域) int r = 8; for (int i = -r; i <= r; i++) { for (int j = -r; j <= r; j++) { if (Math.sqrt(i*i+ j*j) <= r) { // 判断当前区域的点是否在ImageView控件范围内,在就执行下面操作,不在就什么也不做 if (x + i < bmCopy.getWidth() && x + i > 0 && y + j < bmCopy.getHeight() && y + j > 0) { // 把用户划过的坐标点的像素设为透明色 bmCopy.setPixel(x + i, y + j, Color.TRANSPARENT); // 将图片显示在界面上 iv.setImageBitmap(bmCopy); } } } } } return true; } }); }}
最后,部署后,随便点几下屏幕,效果就是这样:
1 0
- Android 撕衣服(刮刮乐游戏)
- Android小游戏应用---撕破美女衣服游戏
- iPhone撕衣服游戏-图片擦除
- 55.模拟撕衣服游戏编辑图片
- android撕衣服应用介绍
- Android之Canvas撕衣服
- Android撕衣服小案例
- android(40)(撕衣服,bitmap的使用)
- canvas 刮刮乐 撕衣服 源代码
- Android 多媒体开发学习之撕衣服
- Android 仿美女撕衣服效果
- Android撕美女衣服小案例
- 撕衣服
- Androidx学习笔记(76)--- 撕衣服
- android开发笔记之多媒体—撕衣服(开心一下)
- Android Bitmap之擦掉图片(扒衣服)
- 撕衣服小游戏代码
- 撕衣服小游戏原理
- list ,set, map
- 冷知识 —— 容易读错的发音(英文)
- ASP.NET Core Docker部署
- 安卓 相机篇(二)
- Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
- Android 撕衣服(刮刮乐游戏)
- 学术笔记·音乐剧研究与鉴赏·三
- 在ASP.NET Core MVC中构建简单 Web Api
- Spring + Spring MVC + Mybatis整合
- 《C# 并发编程 · 经典实例》读书笔记
- sbt
- spring-error-1 Unable to instantiate Action, com.fxb.sms.web.action.AdminAction, defined for 'Adm
- 偏差方差权衡问题
- Node.js开发web后台入门