关闭

Android简易实战教程--第三十话《撕衣美女》

833人阅读 评论(0) 收藏 举报
分类:

此篇邪恶一些,给单身屌丝发点“福利”,通过图片的绘制,给美女脱掉衣服。

原理:图片覆盖图片,通过画笔对顶端的图片做一些特效处理,即手指触摸的地方,设置为透明。即可显示最底部的美女图片。

布局:一张内衣,一张外衣

<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=".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"
        android:src="@drawable/awaiyi" 
        />

</RelativeLayout>

代码如下:

package com.itandroid.syf;

import android.os.Bundle;
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.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;

public class MainActivity extends Activity {

	private Bitmap bmCopy;
	private ImageView iv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.awaiyi);
		
		// 1.创建一个与原图一模一样大小的bitmap对象
		bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());

		// 2.创建画笔对象
		Paint paint = new Paint();
		// 3.创建画板对象
		Canvas canvas = new Canvas(bmCopy);
		// 4.开始作画
		canvas.drawBitmap(bmSrc, new Matrix(), paint);
		
		iv = (ImageView) findViewById(R.id.iv);
		
		//添加图片触摸事件
		iv.setOnTouchListener(new OnTouchListener() {
			
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				switch (event.getAction()) {
				case MotionEvent.ACTION_MOVE:
					//获取x和y的坐标
					int x = (int) event.getX();
					int y = (int) event.getY();
					//算法
					for(int i = -5; i <= 5; i++){//扩大坐标点的范围
						for(int j = -5; j <= 5; j++){
							//把用户划过的坐标置为透明色
							//改变指定的像素颜色
							if(Math.sqrt(i*i + j*j) <= 5){
								//防止角标越界
								if(x + i < bmCopy.getWidth() && y + j < bmCopy.getHeight() && x + i >= 0 && y + j >= 0){
									//直接指定x和y的坐标置为第三个参数的颜色。即透明色
									bmCopy.setPixel(x + i, y + j, Color.TRANSPARENT);
									// 绘制后,再次设置最新的图片情况,刷新显示。
									iv.setImageBitmap(bmCopy);
								}
							}
						}
					}
					break;

				}
				return true;
			}
		});
	}


}

运行程序:

欢迎关注本博客点击打开链接  http://blog.csdn.net/qq_32059827,每天花上5分钟,阅读一篇有趣的安卓小文哦

2
0
查看评论

撕美女衣服应用的原理及做法

现在教大家做一款在市场上非常火的的应用,撕美女衣服。其实原理很简单: 1.准备两张一样的图片,一张是穿有衣服的,另一张是没有穿衣服的。 2.通过FrameLayout进行布局,穿衣服的放上面,没穿衣服的图片放下面。 3.通过触摸事件进行判断,手指划过的地方,让穿衣服的图片变成透明,就显示到了下面没穿...
  • loongggdroid
  • loongggdroid
  • 2014-01-21 12:32
  • 8092

Android应用《撕开美女衣服》的实现过程及源代码

现在很多Android市场中都能找到关于美女的应用,比如 撕开美女衣服、吹裙子等。 这些应用的下载量挺大的,作为Android的开发人员或者一名技术人员我们不能只局限在欣赏应用的层面,很多时候需要我们去揭开神秘背后的真相,下面我们来看一下如何来开发这样一个类似的撕开美女衣服的应用。 先来看一下效果:...
  • lxq_xsyu
  • lxq_xsyu
  • 2013-12-20 13:20
  • 6216

android撕衣服应用介绍

/**  * 主要原理就是利用canvas绘制一层透明色,让后将穿完整衣服的那个图片绘制上。他们之前的层次模型为PorterDuff.Mode.DST_OUT;  * View的draw的时候先绘制没穿衣服的那张图片,然后绘制刚才canvas绘制的两张图叠加起来的那张图; ...
  • linghu_java
  • linghu_java
  • 2015-04-03 10:12
  • 1353

Android 仿美女撕衣服效果

因为我写demo的时候不是用一整屏幕来放置当前图片View的,且资源图也不小,所以用到了bitmap缩放 代码注释比较详尽,直接上了 package com.stone.guaguaka.view; import android.content.Context; import android....
  • jjwwmlp456
  • jjwwmlp456
  • 2016-01-28 15:17
  • 1527

Android 撕衣服(刮刮乐游戏)

项目简介:  该项目为撕衣服,类似刮刮乐游戏详细介绍:用户启动项目后,加载一张图片,当用户点击图片的时候,点击的一片区域就会消失,从而显示出在这张图片下面的图片 这个小游戏类似与刮奖一样,刮开涂层就会显示文字。 这里则是撕掉美女身上的衣服,漏出里面的图片。该应用涉及到的知识有: 1.如何实现画图...
  • qq_36642554
  • qq_36642554
  • 2017-04-01 21:26
  • 3851

Android小游戏应用---撕破美女衣服游戏

ImageView after; ImageView before; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten...
  • andywuchuanlong
  • andywuchuanlong
  • 2014-05-17 16:58
  • 1504

Android实战简易教程-第二十三枪(基于Baas的用户注册和登录模块实现!)

接着上两篇文章,我们基于Bmob提供的API实现用户登录功能,整体看一下代码。1.注册页面xml:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too...
  • yayun0516
  • yayun0516
  • 2015-07-23 07:47
  • 1842

Android 撕开美女衣服解析

一、原理: 现在教大家做一款在市场上非常火的的应用,撕美女衣服。其实原理很简单: 1.准备两张一样的图片,一张是穿有衣服的,另一张是没有穿衣服的。 2.通过FrameLayout进行布局,穿衣服的放上面,没穿衣服的图片放下面。 3.通过触摸事件进行判断,手指划过的地方,让穿衣服的图片变成透明...
  • lovoo
  • lovoo
  • 2016-05-15 23:05
  • 369

Android简易实战教程--第三十六话《电话录音》

今天完成一个简单的电话录音功能,即接通电话后,立即录下自己打电话的声音。实现起来比较简单:一个服务,一个TelephonyManager、一个MediaRecorder就够了。 1、布局提供一个开启录音服务的按钮。 2、服务里面代码如下:(代码详细解释都在里面了) package com.itydl...
  • qq_32059827
  • qq_32059827
  • 2016-10-26 08:27
  • 481

Android简易实战教程--第三十五话《音乐播放》

已经好几天不更新博客了,今天就轻松一点模拟个简单的“音乐播放器”。
  • qq_32059827
  • qq_32059827
  • 2016-10-24 23:02
  • 822
    个人资料
    • 访问:477829次
    • 积分:9129
    • 等级:
    • 排名:第2430名
    • 原创:401篇
    • 转载:39篇
    • 译文:11篇
    • 评论:113条
    博客专栏