在屏幕上滑动慢慢翻开表面的图片

利用帧布局,布好两个ImageView,然后对表面的图片进行透明的操作。

在activit中新建一个bitmap,然后对bitmap进行手指在屏幕上滑动的监听,让手指滑动过的地方,就将图片的像素透明化,那么就可以看到下面的那张图片。

MainActivity:

package com.zhangli.tupian;

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 iv_befor;
	private ImageView iv_after;
	private Bitmap alterBitmap;
	private Canvas canvas;
	private Paint paint;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv_befor = (ImageView) findViewById(R.id.befor);
		iv_after = (ImageView) findViewById(R.id.after);
		BitmapFactory.Options opts = new Options();
		opts.inSampleSize = 1;

		Bitmap after = BitmapFactory.decodeResource(getResources(), R.drawable.after, opts);
		// 只读的图片
		Bitmap befor = BitmapFactory.decodeResource(getResources(), R.drawable.befor, opts);

		// 可以修改的空白bitmap
		alterBitmap = Bitmap.createBitmap(befor.getWidth(), befor.getHeight(), befor.getConfig());

		canvas = new Canvas(alterBitmap);
		paint = new Paint();
		paint.setStrokeWidth(5);
		paint.setColor(Color.BLACK);
		canvas.drawBitmap(befor, new Matrix(), paint);

		iv_after.setImageBitmap(after);
		iv_befor.setImageBitmap(befor);

		iv_befor.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				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 = -8; i < 8; i++) {
						for (int j = -8; j < 8; j++) {
							alterBitmap.setPixel(i + newx, j + newy, Color.TRANSPARENT);
						}
					}
					iv_befor.setImageBitmap(alterBitmap);
					break;
				default:
					break;
				}
				return true;
			}
		});
	}
}

布局:

<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"
    tools:context="com.zhangli.tupian.MainActivity" >

    <ImageView
        android:id="@+id/after"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/after"/>

    <ImageView
        android:id="@+id/befor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/befor" />

</FrameLayout>

红圈中就是手指划过的效果:

在屏幕上滑动慢慢翻开表面的图片_第1张图片

你可能感兴趣的:(在屏幕上滑动慢慢翻开表面的图片)