安卓 畫板 學習筆記

代碼片斷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();
		}
		
	}
}
相關文章
相關標籤/搜索