画画板

来源:互联网 发布:问卷调查软件有哪些 编辑:程序博客网 时间:2024/04/27 13:23
package com.gjj.joy.draw;import android.app.Activity;import android.content.Intent;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.net.Uri;import android.os.Bundle;import android.os.Environment;import android.view.MotionEvent;import android.view.View;import android.widget.ImageView;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;/** * Created by joy on 2016/1/20. */public class DrawActivity extends Activity {    private int startX=0;    private int startY=0;    private Paint paint;    private Bitmap bmCopy;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.draw);        Bitmap bmSrc=BitmapFactory.decodeResource(getResources(), R.drawable.bg);        bmCopy=Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());        paint=new Paint();        final Canvas canvas=new Canvas(bmCopy);        canvas.drawBitmap(bmSrc,new Matrix(),paint);        final ImageView iv= (ImageView) findViewById(R.id.iv);        iv.setImageBitmap(bmCopy);        iv.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                int action=event.getAction();                switch (action){                    case MotionEvent.ACTION_DOWN:                        startX= (int) event.getX();                        startY= (int) event.getY();                        break;                    case MotionEvent.ACTION_MOVE:                        int newStartX= (int) event.getX();                        int newStartY= (int) event.getY();                        canvas.drawLine(startX,startY,newStartX,newStartY,paint);                        startX=newStartX;                        startY=newStartY;                        iv.setImageBitmap(bmCopy);                        break;                    case MotionEvent.ACTION_UP:                        break;                }                return true;                //设置为true,表示由这个组件自己处理,false表示由父节点处理            }        });    }    public void red(View v){        paint.setColor(Color.RED);    }    public void green(View v){        paint.setColor(Color.GREEN);    }    public void black(View v){        paint.setColor(Color.BLACK);    }    public void jiacu(View v){        paint.setStrokeWidth(10);    }    public void save(View v){        File file=new File("sdcard/pictures/tupian.jpg");        FileOutputStream fos= null;        try {            fos = new FileOutputStream(file);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        bmCopy.compress(Bitmap.CompressFormat.PNG, 100, fos);        Intent intent=new Intent();        //android4.4以下使用这个action,Intent.ACTION_MEDIA_MOUNTED        intent.setAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);//android4.4以上使用这个action        intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));        sendBroadcast(intent);    }}
0 0