博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扒美女衣服——妄撮游戏实现原理
阅读量:6516 次
发布时间:2019-06-24

本文共 3170 字,大约阅读时间需要 10 分钟。

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

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

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

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

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

以下来看详细代码:

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

主程序代码:

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;	@Override	protected 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 stub		super.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);		// 能够改动的空白的bitmap		alterBitmap = 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() {			@Override			public boolean onTouch(View v, MotionEvent event) {				// TODO Auto-generated method stub				switch (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、效果图

你可能感兴趣的文章
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>
FLIF:自由的无损图像格式
查看>>
《计算机系统:核心概念及软硬件实现(原书第4版)》——3.7 总结
查看>>
Google开源Inception-ResNet-v2,提升图像分类水准
查看>>
Opera 出售细节曝光:昆仑出资1.68亿美元
查看>>
CentOS 5.3 下快速安装配置 PPTP ××× 服务器
查看>>
产品经理学习总结之技术和设计篇
查看>>
vue之组件认知
查看>>
23种设计模式(15):备忘录模式
查看>>
java基础学习总结——IO流
查看>>
iOS获取APP ipa 包以及资源文件
查看>>
类加载器总结
查看>>
IOS TCP通讯
查看>>
开博纪念
查看>>
linux关机和重启命令
查看>>
CPU存储电路之寄存器——《30天自制操作系统》笔记
查看>>
我的友情链接
查看>>
两款实现一键安装WordPress的程序
查看>>
淘宝评论关键词提取方案
查看>>