protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn1);
iv = (ImageView) findViewById(R.id.iv);
final Bitmap bitmap = BitmapFactory.decodeFile("/storage/sdcard/blank_500_500.png");
//只能在副本图片上修改
final Bitmap copyBitmap = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap.getConfig());
final Canvas canvas = new Canvas(copyBitmap);
final Paint paint = new Paint();
paint.setColor(Color.RED);
//线的宽度
paint.setStrokeWidth(6);
if (bitmap != null) {
iv.setImageBitmap(copyBitmap);
}
iv.setOnTouchListener(new View.OnTouchListener() {
int startX = 0;
int startY = 0;
int endX = 0;
int endY = 0;
@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();
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
endX = (int) event.getX();
endY = (int) event.getY();
canvas.drawLine(startX,startY,endX,endY,paint);
startX = endX;
startY = endY;
iv.setImageBitmap(copyBitmap);
}
return true;//true
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OutputStream os = null;
try {
os = new FileOutputStream(new File("/storage/sdcard/"+ SystemClock.uptimeMillis()+".jpg"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
copyBitmap.compress(Bitmap.CompressFormat.JPEG, 100, os);
Log.i(TAG, "onClick: " + Environment.getExternalStorageDirectory());
File dir = Environment.getExternalStorageDirectory();
ArrayList list = new ArrayList();
if (dir.isDirectory()) {
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
list.add(files[i].getAbsolutePath());
}
}
String[] paths = new String[list.size()];
list.toArray(paths);
MediaScannerConnection.scanFile(MainActivity.this, paths, null, null);
}
});
}