安卓应用《撕掉她的衣服》简化版
首先是activity_main.xml文件
<FrameLayout 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" ><ImageViewandroid:id="@+id/iv_after"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /><ImageViewandroid:id="@+id/iv_pre"android:layout_width="wrap_content"android:layout_height="wrap_content"/></FrameLayout>
接下来就是MainActivity.java文件
package com.csdn.gril;import android.os.Bundle;
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.util.Log;
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 ImageView iv_after;private ImageView iv_before;private Bitmap alterBitmap;private Canvas canvas;private Paint paint;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);BitmapFactory.Options opts = new Options();opts.inSampleSize = 2;iv_after = (ImageView) findViewById(R.id.iv_after);iv_before = (ImageView) findViewById(R.id.iv_pre);Bitmap after = BitmapFactory.decodeResource(getResources(),R.drawable.after, opts);// 只读图片Bitmap before = BitmapFactory.decodeResource(getResources(),R.drawable.pre, opts);// 可以修改的空白的bitmapalterBitmap = Bitmap.createBitmap(before.getWidth(), before.getHeight(),before.getConfig());canvas = new Canvas(alterBitmap);paint = new Paint();paint.setStrokeWidth(5);paint.setColor(Color.BLACK);canvas.drawBitmap(before, new Matrix(), paint);iv_after.setImageBitmap(after);iv_before.setImageBitmap(alterBitmap);iv_before.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:break;case MotionEvent.ACTION_MOVE:Log.i("xx", "move!");int newX = (int) event.getX();int newY = (int) event.getY();for (int i = -10; i < 5; i++) {for (int j = -10; j < 5; j++) {alterBitmap.setPixel(i+newX, j+newY, Color.TRANSPARENT);}}iv_before.setImageBitmap(alterBitmap);break;}return true;}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
操作前:
操作后: