Sie sind auf Seite 1von 6

package com.android_examples.

drawingapp_android_examplescom;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Path;

import android.graphics.Paint;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Button;

import android.widget.RelativeLayout;

import android.view.ViewGroup.LayoutParams;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

RelativeLayout relativeLayout;

Paint paint;

View view;

Path path2;

Bitmap bitmap;

Canvas canvas;

Button button;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
relativeLayout = (RelativeLayout) findViewById(R.id.relativelayout1);

button = (Button)findViewById(R.id.button);

view = new SketchSheetView(MainActivity.this);

paint = new Paint();

path2 = new Path();

relativeLayout.addView(view, new LayoutParams(

RelativeLayout.LayoutParams.MATCH_PARENT,

RelativeLayout.LayoutParams.MATCH_PARENT));

paint.setDither(true);

paint.setColor(Color.parseColor("#000000"));

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeJoin(Paint.Join.ROUND);

paint.setStrokeCap(Paint.Cap.ROUND);

paint.setStrokeWidth(2);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {


path2.reset();

});

class SketchSheetView extends View {

public SketchSheetView(Context context) {

super(context);

bitmap = Bitmap.createBitmap(820, 480, Bitmap.Config.ARGB_4444);

canvas = new Canvas(bitmap);

this.setBackgroundColor(Color.WHITE);

private ArrayList<DrawingClass> DrawingClassArrayList = new ArrayList<DrawingClass>();

@Override

public boolean onTouchEvent(MotionEvent event) {

DrawingClass pathWithPaint = new DrawingClass();

canvas.drawPath(path2, paint);
if (event.getAction() == MotionEvent.ACTION_DOWN) {

path2.moveTo(event.getX(), event.getY());

path2.lineTo(event.getX(), event.getY());

else if (event.getAction() == MotionEvent.ACTION_MOVE) {

path2.lineTo(event.getX(), event.getY());

pathWithPaint.setPath(path2);

pathWithPaint.setPaint(paint);

DrawingClassArrayList.add(pathWithPaint);

invalidate();

return true;

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

if (DrawingClassArrayList.size() > 0) {

canvas.drawPath(

DrawingClassArrayList.get(DrawingClassArrayList.size() - 1).getPath(),
DrawingClassArrayList.get(DrawingClassArrayList.size() - 1).getPaint());

public class DrawingClass {

Path DrawingClassPath;

Paint DrawingClassPaint;

public Path getPath() {

return DrawingClassPath;

public void setPath(Path path) {

this.DrawingClassPath = path;

public Paint getPaint() {

return DrawingClassPaint;

public void setPaint(Paint paint) {

this.DrawingClassPaint = paint;

}
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.android_examples.drawingapp_android_examplescom.MainActivity"

android:weightSum="100">

<RelativeLayout

android:id="@+id/relativelayout1"

android:layout_weight="90"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</RelativeLayout>

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Click Here to clear drawing "

android:id="@+id/button"

android:layout_weight="10"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true" />

</RelativeLayout>