代碼片斷java
package com.tang.paint; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.Toast; import android.os.Build; public class MainActivity extends Activity { private ImageView iv; private Bitmap basemap; private Canvas canvas; private Paint paint; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.pic); paint = new Paint(); paint.setStrokeWidth(5); paint.setColor(Color.GREEN); basemap = Bitmap.createBitmap(768, 1100, Bitmap.Config.ARGB_8888); canvas = new Canvas(basemap); canvas.drawColor(Color.WHITE); //設置顏色 iv.setOnTouchListener(new OnTouchListener() { int startX; int startY; public boolean onTouch(View view, 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(basemap); break; case MotionEvent.ACTION_UP: //擡筆 break; } return true; } }); } public void save(View view) { System.out.println(Environment.getDataDirectory()); System.out.println(Environment.getExternalStorageDirectory()); try { String fileName = System.currentTimeMillis()+".jpg"; File file = new File(Environment.getExternalStorageDirectory(), fileName); FileOutputStream stream; stream = new FileOutputStream(file); basemap.compress(CompressFormat.JPEG, 100, stream); //通知相冊 //Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED); //intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory())); //sendBroadcast(intent); //4.4之後 MediaScannerConnection.scanFile(this, new String[]{Environment.getExternalStorageDirectory()+"/" + fileName}, null, null); Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block Toast.makeText(this, "保存失敗", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } } }