Android应用《撕开美女衣服》的实现过程及源代码
2013-12-20 13:20
239 查看
现在很多Android市场中都能找到关于美女的应用,比如 撕开美女衣服、吹裙子等。
这些应用的下载量挺大的,作为Android的开发人员或者一名技术人员我们不能只局限在欣赏应用的层面,很多时候需要我们去揭开神秘背后的真相,下面我们来看一下如何来开发这样一个类似的撕开美女衣服的应用。
先来看一下效果:
![](http://img.my.csdn.net/uploads/201312/20/1387515956_9137.gif)
其实这个应用的原理很简单,有两张图片,布局如下:
上面一张图片是穿着衣服的图片,下面一张图片是撕开衣服的图片。
在Activity中我们先创建一个可以编辑的Bitmap图片对象,然后对该图片中像素点的颜色(透明度)进行改变就实现我们所要的效果了。
源代码下载地址:http://download.csdn.net/detail/lxq_xsyu/6744849
这些应用的下载量挺大的,作为Android的开发人员或者一名技术人员我们不能只局限在欣赏应用的层面,很多时候需要我们去揭开神秘背后的真相,下面我们来看一下如何来开发这样一个类似的撕开美女衣服的应用。
先来看一下效果:
![](http://img.my.csdn.net/uploads/201312/20/1387515956_9137.gif)
其实这个应用的原理很简单,有两张图片,布局如下:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/back_img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/back"/> <ImageView android:id="@+id/up_img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/up"/> </FrameLayout>
上面一张图片是穿着衣服的图片,下面一张图片是撕开衣服的图片。
在Activity中我们先创建一个可以编辑的Bitmap图片对象,然后对该图片中像素点的颜色(透明度)进行改变就实现我们所要的效果了。
package com.example.sikaimeinvyifu; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options; 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 backImg; private ImageView upImg; private Bitmap alterBitmap; private Canvas canvas; private Paint paint; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //改变图片大小 BitmapFactory.Options opts = new Options(); opts.inSampleSize = 1; backImg = (ImageView) findViewById(R.id.back_img); upImg = (ImageView) findViewById(R.id.up_img); //只读的图片 Bitmap back = BitmapFactory.decodeResource(getResources(), R.drawable.back, opts); Bitmap up = BitmapFactory.decodeResource(getResources(), R.drawable.up, opts); //可以修改的空白的Bitmap alterBitmap = Bitmap.createBitmap(up.getWidth(), up.getHeight(), up.getConfig()); //将alterBitmap作为画布,然后将Bitmap up画到画布上。 canvas = new Canvas(alterBitmap); paint = new Paint(); paint.setStrokeWidth(5); paint.setColor(Color.BLACK); canvas.drawBitmap(up, new Matrix(), paint); backImg.setImageBitmap(back); upImg.setImageBitmap(alterBitmap); upImg.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(); System.out.println(x); System.out.println(y); for(int i=-5; i<5; i++){ for(int j=-5; j<5; j++){ //更改画布上该像素点的颜色 alterBitmap.setPixel(i + x, j + y, Color.TRANSPARENT); } } //重新绘制到ImageView上面 upImg.setImageBitmap(alterBitmap); break; default: break; } return true; } }); } }
源代码下载地址:http://download.csdn.net/detail/lxq_xsyu/6744849
相关文章推荐
- Android应用《撕开美女衣服》的实现过程及源代码
- Android实现点击通知栏后,先启动应用再打开目标Activity
- Android照片墙应用实现,再多的图片也不怕崩溃
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析
- win7电脑做服务器,搭建网站应用后发布到互联网的实现过程
- Android图片高斯模糊处理应用-涉及libjpeg的使用,NDK对SurfaceView的操作,图像模糊处理,附源代码
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- 说说Android桌面(Launcher应用)背后的故事(六)——研究Launcher而实现的附属品(可以拖拽的ListView)
- java代码中实现android背景选择的selector-StateListDrawable的应用
- Android自定义字体类库Calligraphy--快速实现自定义应用字体
- Android成长之路之应用启动过程
- 为Android应用增加渠道信息 自动化不同渠道的打包过程
- Android应用开发笔记(12):Android应用的自动升级、更新模块的实现
- android 使用download Manager实现应用下载安装
- Android 实现一键切换应用主题颜色
- Android布局文件的载入过程分析:Activity.setContentView()源代码分析
- Android应用自动更新功能的实现
- Android中如何用代码实现打开、卸载和分享其他已安装应用