把android中图片局部区域改为透明

来源:互联网 发布:cloudstack基本网络 编辑:程序博客网 时间:2024/04/30 22:56
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.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.ImageView;import com.example.administrator.homework.R;public class MainActivity extends Activity {    private ImageView iv_after;    private ImageView iv_before;    private Bitmap beforeBitmap;    private Canvas canvas;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        this.iv_after = (ImageView) this.findViewById(R.id.after);        this.iv_before = (ImageView) this.findViewById(R.id.before);// decodeResource()创建出来的图片属性为只读        Bitmap after = BitmapFactory.decodeResource(getResources(),                R.drawable.after);        Bitmap before = BitmapFactory.decodeResource(getResources(),                R.drawable.before);// 创建一张可编辑的空白图片        this.beforeBitmap = Bitmap.createBitmap(before.getWidth(),                before.getHeight(), before.getConfig());        this.canvas = new Canvas(beforeBitmap);        this.canvas.drawBitmap(before, new Matrix(), new Paint());        this.iv_after.setImageBitmap(after);        this.iv_before.setImageBitmap(beforeBitmap);        this.iv_before.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();                        for (int i = -18; i <= 18; i++) {                            for (int j = -18; j <= 18; j++) {                                if (x + i >= 0 && y + j >= 0                                        && x + i < beforeBitmap.getWidth()                                        && y + j < beforeBitmap.getHeight()) {                                    beforeBitmap.setPixel(x + i, y + j,                                            Color.TRANSPARENT);                                }                            }                        }                        iv_before.setImageBitmap(beforeBitmap);                        break;                }                return true;            }        });    }}

原创粉丝点击