
Buat projek baru dan desain tampilan awal menggunakan 1 linear untuk tempat menggambar dan 2 button untuk tombol simpan dan membersikan gambar

Jika sudah pilih Event - onCreate, Tambahkan block add source directly dan Isi dengan kede dibawah

dv = new DrawingView(this);linear2.addView(dv); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setDither(true); mPaint.setColor(Color.RED); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeCap(Paint.Cap.ROUND); mPaint.setStrokeWidth(12); }
DrawingView dv; private Paint mPaint;
private Canvas mCanvas;
public class DrawingView extends View { public int width;
public int height;
private Bitmap mBitmap;
private Path mPath;
private Paint mBitmapPaint;
Context context; private Paint circlePaint; private Path circlePath;
public DrawingView(Context c) { super(c); context=c; mPath = new Path(); mBitmapPaint = new Paint(Paint.DITHER_FLAG); circlePaint = new Paint(); circlePath = new Path(); circlePaint.setAntiAlias(true); circlePaint.setColor(Color.BLUE); circlePaint.setStyle(Paint.Style.STROKE); circlePaint.setStrokeJoin(Paint.Join.MITER); circlePaint.setStrokeWidth(4f); }
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mBitmap); }
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawBitmap( mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath( mPath, mPaint); canvas.drawPath( circlePath, circlePaint);
invalidate(); }
private float mX, mY;
private static final float TOUCH_TOLERANCE = 4;
private void touch_start(float x, float y) { mPath.reset(); mPath.moveTo
Tulisan (color:RED) Berwarna hijau ganti sesuka kalian
Jika sudah lalu buat MoreBlock dengan Nama SaveGambar lalu beri Variable View dengan nama View lalu klik Add. Buka MoreBlock lalu beri block add source directly Tambahkan kode di bawah
Bitmap returnedBitmap = Bitmap.createBitmap(_view.getWidth(), _view.getHeight(),Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(returnedBitmap); android.graphics.drawable.Drawable bgDrawable =_view.getBackground(); if (bgDrawable!=null) { bgDrawable.draw(canvas); } else { canvas.drawColor(Color.WHITE); } _view.draw(canvas); java.io.File pictureFile = new java.io.File(Environment.getExternalStorageDirectory() + "/Drawing/gambar.png"); if (pictureFile == null) { showMessage("Error creating media file, check storage permissions: "); return; } try { java.io.FileOutputStream fos = new java.io.FileOutputStream(pictureFile); returnedBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.close(); showMessage("Image Saved in /storage/Drawing"); } catch (java.io.FileNotFoundException e) { showMessage("File not found: " + e.getMessage()); } catch (java.io.IOException e) { showMessage("Error accessing file: " + e.getMessage()); }
Lalu klik Button Save klik event (bagian bawah) - onCreate beri block seperti gambar di bawah

Kemudian pilih Button Clear klik Event - onCreate beri block add source directly tambahkan kode dibawah

mCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);