当前位置: 首页 > news >正文

扒美女衣服——妄撮游戏实现原理

扒美女衣服原版来自日本妄撮游戏,如今介绍一下它的实现原理。

1、两张美女图片,一张穿着衣服,一张没穿衣服。

2、採用FrameLayout将穿衣服的图片放在上面,没穿衣服的放在以下

3、当触摸图片时,将触摸位置处的图片设为透明。

这样就能够看到以下没穿衣服的图片,哈哈,是不是非常easy。

以下来看详细代码:

Layout布局两张图片叠加在一起

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" ><ImageViewandroid:id="@+id/iv_after"android:layout_width="wrap_content"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/iv_before"android:layout_width="wrap_content"android:layout_height="wrap_content" /></FrameLayout>
主程序代码:

public class bayifu extends Activity {private ImageView iv_after;private ImageView iv_before;private Bitmap alterBitmap;private Canvas canvas;private Paint paint;private Bitmap after;private Bitmap before;@Overrideprotected void onCreate(Bundle savedInstanceState) {int[] imageIds1 = new int[] { R.drawable.pre1, R.drawable.pre2,R.drawable.pre3, R.drawable.pre4, R.drawable.pre5,R.drawable.pre6, R.drawable.pre7, R.drawable.pre8,R.drawable.pre9, R.drawable.pre10, R.drawable.pre11,R.drawable.pre12, R.drawable.pre13, R.drawable.pre14,R.drawable.pre15, R.drawable.pre16, R.drawable.pre17,R.drawable.pre18, R.drawable.pre19, R.drawable.pre20,R.drawable.pre21 };int[] imageIds2 = new int[] { R.drawable.after1, R.drawable.after2,R.drawable.after3, R.drawable.after4, R.drawable.after5,R.drawable.after6, R.drawable.after7, R.drawable.after8,R.drawable.after9, R.drawable.after10, R.drawable.after11,R.drawable.after12, R.drawable.after13, R.drawable.after14,R.drawable.after15, R.drawable.after16, R.drawable.after17,R.drawable.after18, R.drawable.after19, R.drawable.after20,R.drawable.after21 };// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.tuoyifulayout);Intent ic = getIntent();Bundle bd = ic.getExtras();String is = bd.getString("num");int position = Integer.parseInt(is);BitmapFactory.Options opts = new Options();opts.inSampleSize = 1;iv_after = (ImageView) findViewById(R.id.iv_after);iv_before = (ImageView) findViewById(R.id.iv_before);after = BitmapFactory.decodeResource(getResources(),imageIds2[position], opts);before = BitmapFactory.decodeResource(getResources(),imageIds1[position], opts);// 能够改动的空白的bitmapalterBitmap = Bitmap.createBitmap(before.getWidth(),before.getHeight(), before.getConfig());canvas = new Canvas(alterBitmap);paint = new Paint();paint.setStrokeCap(Cap.ROUND);paint.setStrokeJoin(Join.ROUND);paint.setStrokeWidth(5);paint.setColor(Color.BLACK);paint.setAntiAlias(true);canvas.drawBitmap(before, new Matrix(), paint);//在ImageView中设置了重叠的两张图片iv_after.setImageBitmap(after);iv_before.setImageBitmap(before);iv_before.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {case MotionEvent.ACTION_DOWN:break;case MotionEvent.ACTION_MOVE:int newX = (int) event.getX();int newY = (int) event.getY();//将触摸区域。图片的像素设为透明for (int i = -10; i < 10; i++) {for (int j = -10; j < 10; j++) {if (i + newX >= 0 && j + newY >= 0&& i + newX <= before.getWidth()&& j + newY <= before.getHeight())alterBitmap.setPixel(i + newX, j + newY,Color.TRANSPARENT);}}iv_before.setImageBitmap(alterBitmap);break;}return true;}});}}

3、效果图



转载于:https://www.cnblogs.com/wzjhoutai/p/7106562.html

http://www.xdnf.cn/news/852049.html

相关文章:

  • 新晋 CTO 的工作总结:我在第一年学到了 14 个经验教训
  • android软件安装到平板,新人看过来 安卓平板装机必备软件推荐
  • 直接强制结束进程_迅雷极速版被强制升级怎办?分享一下禁止迅雷强制性升级方法...
  • 网站盈利的10种方式
  • 金山词霸2009牛津版完整破解版+绿色精简版下载
  • Perl 语言入门学习
  • System32和SysWow64文件夹的区别
  • 文件上传FileUpload
  • JS实现网页轮播图
  • 07-SNAP处理Sentinel-1 IW GRD数据
  • STM32F429+W25Q256+TouchFGX
  • 解密QQ盗号诈骗APP:逆向溯源,探寻幕后黑色操作
  • 关系模型的完整性约束_关系模型
  • 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
  • 让你的系统选单变为彩色,修改boot.ini产生彩色的启动菜单[附颜色代码]
  • 操作系统实验一——向Linux 内核增加一个系统调用
  • 电脑技巧:电脑故障维修常见的故障整理
  • Java高级_Day11(复制文件,字节缓冲流)
  • 多爪抓取机械手结构设计
  • 01通讯录管理系统——系统功能介绍
  • 如何快速上手跨境电商ERP源码开发:简单易懂的教程
  • 深入研究Android启动速度优化(上)- 看完这些启动优化已经完成80%了
  • 美国口语俚语大全
  • 【图像拼接】基于SURF算法实现图像拼接附Matlab代码
  • output_buffering详细介绍
  • 微信小程序投票系统制作过程详解
  • 简单制作 OS X Yosemite 10.10 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)
  • JetsonNano学习(五)JetsonNano 安装 PyTorch 及 Torchvision
  • 基于Java的基金交易网站系统设计与实现(源码+lw+部署文档+讲解等)
  • 另一个 OleDbParameterCollection 中已包含 OleDbParameter 错误分析及解决办法