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);
}
}
画画板
最新推荐文章于 2021-05-27 05:08:00 发布