package com.qq.paint;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private ImageView iv;
private Bitmap alterbitmap;
private Paint paint;
private Canvas canvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView) findViewById(R.id.iv);
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pre19 );
alterbitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), bitmap.getConfig());
canvas = new Canvas(alterbitmap);
paint = new Paint();// 3.创建一个画笔。
paint.setColor(Color.RED);// 如果原图没颜色 就默认用黑色
paint.setStrokeWidth(8);
canvas.drawBitmap(bitmap, new Matrix(), paint);
iv.setImageBitmap(alterbitmap);
iv.setOnTouchListener(new OnTouchListener() {
int startX = 0;
int startY = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = (int) event.getX();
startY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
int newX = (int) event.getX();
int newY = (int) event.getY();
canvas.drawLine(startX, startY, newX, newY, paint);
//手指的位置改变了。
startX = (int) event.getX();
startY = (int) event.getY();
iv.setImageBitmap(alterbitmap);
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
}
public void save(View view){
try {
//在SD卡的外部存储创建文件名为haha.jpg的文件
File file=new File(Environment.getExternalStorageDirectory(),"haha.jpg");
//新建文件输出流
FileOutputStream stream=new FileOutputStream(file);
//压缩保存图片 图片格式 图片质量100原样保存 文件输出流
alterbitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
Toast.makeText(this, "保存成功", 0).show();
//欺骗系统sd卡被重新插入
Intent intent=new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);//sd卡被挂载
//指定sd卡的路径
intent.setData(Uri.fromFile(Environment.getDataDirectory()));
//发送广播
sendBroadcast(intent);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "保存失败", 0).show();
}
}
}
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private ImageView iv;
private Bitmap alterbitmap;
private Paint paint;
private Canvas canvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView) findViewById(R.id.iv);
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pre19 );
alterbitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), bitmap.getConfig());
canvas = new Canvas(alterbitmap);
paint = new Paint();// 3.创建一个画笔。
paint.setColor(Color.RED);// 如果原图没颜色 就默认用黑色
paint.setStrokeWidth(8);
canvas.drawBitmap(bitmap, new Matrix(), paint);
iv.setImageBitmap(alterbitmap);
iv.setOnTouchListener(new OnTouchListener() {
int startX = 0;
int startY = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = (int) event.getX();
startY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
int newX = (int) event.getX();
int newY = (int) event.getY();
canvas.drawLine(startX, startY, newX, newY, paint);
//手指的位置改变了。
startX = (int) event.getX();
startY = (int) event.getY();
iv.setImageBitmap(alterbitmap);
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
}
public void save(View view){
try {
//在SD卡的外部存储创建文件名为haha.jpg的文件
File file=new File(Environment.getExternalStorageDirectory(),"haha.jpg");
//新建文件输出流
FileOutputStream stream=new FileOutputStream(file);
//压缩保存图片 图片格式 图片质量100原样保存 文件输出流
alterbitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
Toast.makeText(this, "保存成功", 0).show();
//欺骗系统sd卡被重新插入
Intent intent=new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);//sd卡被挂载
//指定sd卡的路径
intent.setData(Uri.fromFile(Environment.getDataDirectory()));
//发送广播
sendBroadcast(intent);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "保存失败", 0).show();
}
}
}