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

原创 2014年05月15日 16:05:56

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

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

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

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

这样就可以看到下面没穿衣服的图片,哈哈,是不是很简单。下面来看具体代码:

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

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/iv_after"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageView
        android: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;

	@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、效果图



55.模拟撕衣服游戏编辑图片

撕衣服游戏的原理:原本有2个图片,一个原图片,一个被撕了衣服以后的图片。两个图片放在一起,原图片放在上面,收滑动的时候上面图片的像素点设置成透明,下面的图片自然露出来了。 布局文件 activity_...
  • augfun
  • augfun
  • 2017-02-17 02:43:18
  • 844

Android:简单实现美女扒衣服小游戏

实现思路 说说实现的大概思路,首先要有两副图片。这两幅图片的区别就在于一副有穿衣服,另外一副没有穿衣服,其他的细节都要一模一样。这对于懂ps的童鞋就好办啦自己动手制作就好了。但是本文为了照顾不懂ps的...
  • javy_codercoder
  • javy_codercoder
  • 2015-11-20 21:59:56
  • 1052

扒衣服小游戏Demo

  • 2015年11月20日 21:55
  • 7.38MB
  • 下载

Android程序系列:给美女脱衣服游戏源码

  • 2012年07月24日 20:58
  • 4.22MB
  • 下载

撕衣服小游戏原理

/*撕衣服原理: 底层放无衣服人物,上层放穿衣服人物 当触摸划过使上层划过像素变透明*/ public class MainActivity extends Activity { priv...
  • coder_weiyi
  • coder_weiyi
  • 2015-08-12 21:33:31
  • 278

19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写

http://blog.csdn.net/tototuzuoquan/article/details/46948469
  • chun1234567
  • chun1234567
  • 2015-07-21 21:00:58
  • 389

妄撮—撕破她的衣服(很给力的资源)

  • 2011年05月28日 09:32
  • 1.56MB
  • 下载

(撕开美女衣服)游戏源代码

  • 2012年12月19日 19:06
  • 529KB
  • 下载

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

扒美女衣服原版来自日本妄撮游戏,现在介绍一下它的实现原理。 1、两张美女图片,一张穿着衣服,一张没穿衣服。 2、采用FrameLayout将穿衣服的图片放在上面,没穿衣服的放在下面 3、当触摸图片时,...
  • axiaoquan
  • axiaoquan
  • 2014-05-15 16:05:56
  • 1112

android开发笔记之多媒体—撕衣服(开心一下)

效果图:看到是不是很激动呢,在这里讲一下原理,其实很简单,就是两张图片叠在一下,当鼠标触摸的时候改变上面那张图片的透明度就可以了。核心代码:public class MainActivity exte...
  • qq_22063697
  • qq_22063697
  • 2016-05-14 21:24:37
  • 604
收藏助手
不良信息举报
您举报文章:扒美女衣服——妄撮游戏实现原理
举报原因:
原因补充:

(最多只允许输入30个字)