You are on page 1of 26

lOMoARcPSD|31626206

MAD Microproject 01 - mad mp

Computer Science and Application (Sambalpur University)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)
lOMoARcPSD|31626206

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION


GOVERNMENT POLYTECHNIC, JALGAON
(0018)

Program code name : Computer Engineering (CO6I-A)


Subject Name & Code : Mobile Application Development (22617)
Academic Year : 2021-2022
Semester : Sixth

MICROPROJECT ON
Paint Application

Sr_No Roll_No Name Enrollment_No

1 41 Rushali Samadhan Chaudhari 1900180225

2 77 Vaishnavi Satish Mahajan 1900180261

3 81 Mayuri Bharat Fegade 1900180265

4 82 Aarti Rajendra Chaudhari 1900180266

PROJECT GUIDE
Mrs. Kiran Baviskar Mam

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

MAHARASHTRA BOARD OF TECHNICAL EDUCATION

Certificate
This is to certify that Student of CO 6I (A) ( R.S.C, M.B.F, A.R.C, V.S.M ) ,
Roll Nos (41,81,82,77) of 5th Semester of Diploma in Computer Engineering of
Institute, Government Polytechnic Jalgaon (Code:0018) has completed Micro
Project satisfactorily in the Subject – Mobile Application Development (22617)
for the Academic Year 2021-2022 as prescribed in the curriculum.

Place : Jalgaon
Date : / /2021

Subject Teacher Head of Department Principle

Seal of Institution

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

GOVERNMENT POLYTECHNIC , JALGAON

SUBMISSION

This is to certify that Student of CO 6I (A) ( R.S.C , M.B.F , A.R.C , V.S.M ), Roll
Nos (41,81,82,77) of 6h Semester of Diploma in Computer Engineering of Institute,
Government Polytechnic Jalgaon humbly submit that we have completed from time
to time the MicroProject work as described in this report by our own skills and
study between the period from 2021 to 2021 per
instructions/guidance of Kiran Baviskar Mam.
And that following students were associated with us for this work, however,
quantum of our contribution has been approved by the Lecturer. And that we have
not copied the report on its any appreciable part from any other literature in
contravention of the academic ethics.

Signature of Students
41
77
81
82

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

WEEKLY PROJECT REPORT

SR_NO WEEK ACTIVITY PERFORMANCE SIGN OF DATE


GUIDE
1 Discussion and finalization of
topic
2 Preparation and submission of
Abstract
First and
3 Second week Literature Review

4 Collection of Data

5 Third And Fourth Week Collection


of Data
Third and
6 Fourth Week Discussion and outline of Content

7 Formulation of Content

8 Editing and proof Reading of


Content
9 Compilation of Report And
Presentation
10 Seminar
Fifth and
Sixth Week
11 Viva voce

12 Final submission of Micro Project

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

INDEX

Sr.No. Content Page.No.

1 Abstract 13

2 Source code 14

3 Output of Project 23

4 Future Scope 24

5 Applications 25

6 Conclusion 25

7 Reference 26

8 Skill Develop 26

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

A micro-project proposal :- Paint Application

Aim : Develop an Android Application Program for Paint App

Course outcome addressed :

 Interpreter features of Android operating system.


 Configure Android environment and development tools.
 Develop rich user interfaces by using layouts and controls.
 Use user interface components for android application development
 Create android application using database
 Publish android application

Proposed methodology :

 We decided the topic on which the group project report is to be formed.


 Then we went through the group discussion on how to perform and work on
the Project.
 We understood what actually the we have to design
 firstly we prepare rough test plan and then we start to design project. In this
way we created the services of operating system project

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

Action Plan

Sr.no. Details of Planned start Planned finish Name of


activity date date responsible team
member
1 Searching of topic

Rushali
2 Sorting of topic Chaudhari
3 Selection of topic
Vaishnavi
4 Collecting Mahajan
information
5 5. Implementing Mayuri Fegade
of information
Aarti Chaudhari
6 6. Learning basic
operations
7 7. Implementing
basic operations
8 8. Coding our
program
9 9. Making report
10 10. Report and
project ready

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 Actual Resources Used –

SR.NO. Name of Resources Specifications Quantity Remarks


/Material

1 Operating System Windows 10 3 Yes

2 CPU Intel (i) core i5 3 Yes

3 RAM 8GB 3 Yes

4 Android Studio Version 4.1 or above 3 Yes

5
Websites https://www.tutorialspoint.com 1 Yes
/operating_system/os_services.
htm

6
MobileApplication
Reference Books 1 Yes
Development

7 Other Resources Mouse, Keyboard Each 3 Yes

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

Teachers Evaluation Sheet:


Name of student : Rushali Chaudhari , Vaishnavi Mahajan , Mayuri Fegade ,
Aarti Chaudhari

Enrollment number : 1900180225, 1900180261, 1900180265,


1900180266

Name of Project : Paint Application

Course Title : CO6I

Code : 22617

Evaluation as per Suggested Rubric for Assessment of Micro Project

Characteristics Poor (marks 1- Average Good (marks Excellent


to be accessed 3) (marks 4-5) 6-8) (marks 9-10)

Relevance to the
course

Literature review

Information
collection

Analysis of data
and
representation

Completion of
the target as per
project proposal

Report
preparation

Presentation of
the micro project

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

Micro-Project Evaluation Sheet

Process and Product Individual Total Marks


Assesment Presentation/Viva (10 marks)
(6 marks) (4 marks)

Comments/suggestions about team work/leadership/inter personal


communication (if any)

…………………………………………………………………………………….........................……………………………………………………
……………………………….........................
…………………………………………………………………………………….........................
…………………………………………………………………………………….........................
…………………………………………………………………………………….........................
…………………………………………………………………………………….........................

Name and designation of the Teacher : Mrs. Ashwini Lokhande Mam.

Dated Signature ………………………………

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

ACKNOWLEDGEMENT

study or a project of this volume can never be an outcome or a


single person. We our indebted to our subject teacher Mrs. Kiran
Baviskar Mam being the epitome of guidance during the entire
project

We are also thankful to our entire group. Without their help this .
.project would not have seen the light of day

We are happy to present a vote of thanks to them for their sincere


.advice and co-operation that they have lent us unconditionally

Course outcome achieved:

a. knowledge : Apply knowledge of basic ,mathematics, science, and


basic engineering to solve the computer group related
problems

b. Engineering tools : Apply relevant programming technologies and


tools with an understanding of the limitations.

This project is designed to develop the skills that allow students to create
safe and efficient quality Paint Application

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

RATIONALE -

The official language for Android development is Java. Large parts of


Android are written in Java and its APIs are designed to be called primarily from
Java. It is possible to develop C and C++ app using the Android Native Development
Kit (NDK), however it isn’t something that Google promotes. According to Google,
“the NDK will not benefit most apps. As a developer, you need to balance its benefits
against its drawbacks. Notably, using native code on Android generally does not
result in a noticeable performance improvement, but it always increases your app
complexity.”

LITERATURE REVIEW-

In order to understand the concepts associated with Android Application Paint


App it is imperative to examine and analyze published material from experts
regarding the field.

The purpose of this review is to analyze and examine and obtain experience as
regards the creation and archival processing of Paint Application. The review is based
on an exhaustive assessment of the literature on computerized Paint App , and
contains an overview of the main concepts.

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 ABSTRACT -

Paint applications are become famous thanks to Microsoft Paint, well known as
simply Paint or Paintbrush. It was a simple computer graphics application included
with all versions of Microsoft Windows.

We all have once used the MS-Paint in our childhood, and when the system was
shifted from desks to our palms, we started doodling on Instagram Stories, Hike,
WhatsApp, and many more such apps. In day-to-day life, if we want to create a
drawing we firstly require a Canvas to work upon. So, in our app, we will firstly
create a canvas where the user can draw his drawings. And for that, we need to create
a custom view where the user could simply drag the finger to draw the strokes.

Our Paint Application for Android will offer the following features to users :
Draw paths with fingers on the screen
Normal mode
Emboss
mode Blur
mode
Clear option to remove all paths on the screen

In this project we covered Painting Features and its working

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 Source Code –

- MainActivity.xml –

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

xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ssaurel.mypaint.MainActivity">

<com.ssaurel.mypaint.PaintView
android:id="@+id/paintView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
MainActivity.java –

import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

private PaintView paintView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
paintView = (PaintView) findViewById(R.id.paintView);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(met-

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

rics);
paintView.init(metrics);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.normal:
paintView.normal();
return true;
case R.id.emboss:
paintView.emboss();
return true;
case R.id.blur:
paintView.blur();
return true;
case R.id.clear:
paintView.clear();
return true;
}

return super.onOptionsItemSelected(item);
}
}

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

PaintView.Java -
package com.ssaurel.mypaint;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BlurMask-
Filter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.EmbossMask-
Filter;
import android.graphics.MaskFilter;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.MotionEvent;
import android.view.View;

import java.util.ArrayList;

public class PaintView extends View


{

public static int BRUSH_SIZE =


20;
public static final int DE-
FAULT_COLOR = Color.RED;
public static final int DE-
FAULT_BG_COLOR = Color.WHITE;
private static final float
TOUCH_TOLERANCE = 4;
private float mX, mY;
private Path mPath;
private Paint mPaint;
private ArrayList<FingerPath>

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

paths = new ArrayList<>();


private int currentColor;
private int backgroundColor =
DEFAULT_BG_COLOR;
private int strokeWidth;
private boolean emboss;
private boolean blur;
private MaskFilter mEmboss;
private MaskFilter mBlur;
private Bitmap mBitmap;
private Canvas mCanvas;
private Paint mBitmapPaint = new
Paint(Paint.DITHER_FLAG);

public PaintView(Context con-


text) {
this(context, null);
}

public PaintView(Context con-


text, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(DE-
FAULT_COLOR);

mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStroke-
Join(Paint.Join.ROUND);
mPaint.setStroke-
Cap(Paint.Cap.ROUND);
mPaint.setXfermode(null);
mPaint.setAlpha(0xff);
mEmboss = new EmbossMask-
Filter(new float[] {1, 1, 1}, 0.4f,
6, 3.5f);
mBlur = new BlurMask-
Filter(5, BlurMaskFilter.Blur.NOR-

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

MAL);
}

public void init(DisplayMetrics


metrics) {
int height = met-
rics.heightPixels;
int width = metrics.width-
Pixels;

mBitmap = Bitmap.createBit-
map(width, height, Bitmap.Con-
fig.ARGB_8888);
mCanvas = new Canvas(mBit-
map);

currentColor = DE-
FAULT_COLOR;
strokeWidth = BRUSH_SIZE;
}

public void normal() {


emboss = false;
blur = false;
}

public void emboss() {


emboss = true;
blur = false;
}

public void blur() {


emboss = false;
blur = true;
}

public void clear() {


backgroundColor = DE-
FAULT_BG_COLOR;
paths.clear();

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

normal();
invalidate();
}

@Override
protected void onDraw(Canvas
canvas) {
canvas.save();
mCanvas.drawColor(back-
groundColor);

for (FingerPath fp : paths)


{

mPaint.setColor(fp.color);
mPaint.set-
StrokeWidth(fp.strokeWidth);
mPaint.setMask-
Filter(null);

if (fp.emboss)
mPaint.setMask-
Filter(mEmboss);
else if (fp.blur)
mPaint.setMask-
Filter(mBlur);

mCanvas.draw-
Path(fp.path, mPaint);

}
canvas.drawBitmap(mBitmap,
0, 0, mBitmapPaint);
canvas.restore();
}

private void touchStart(float x,


float y) {
mPath = new Path();
FingerPath fp = new Finger-

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

Path(currentColor, emboss, blur,


strokeWidth, mPath);
paths.add(fp);

mPath.reset();
mPath.moveTo(x, y);
mX = x;
mY = y;
}

private void touchMove(float x,


float y) {
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);

if (dx >= TOUCH_TOLERANCE ||


dy >= TOUCH_TOLERANCE) {
mPath.quadTo(mX, mY, (x
+ mX) / 2, (y + mY) / 2);
mX = x;
mY = y;
}
}

private void touchUp() {


mPath.lineTo(mX, mY);
}

@Override
public boolean onTouchEvent(Mo-
tionEvent event) {
float x = event.getX();
float y = event.getY();

switch(event.getAction()) {
case MotionEvent.AC-
TION_DOWN :
touchStart(x, y);
invalidate();
break;

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

case MotionEvent.AC-
TION_MOVE :
touchMove(x, y);
invalidate();
break;
case MotionEvent.AC-
TION_UP :
touchUp();
invalidate();
break;
}

return true;
}
}

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 Output of Project -

After Open This App user can draw paintings. The right side of screen
There is a Menu of Brush Stroke like – Normal , Emboss , Blur etc…
After that user can also clear their painting work on this application.

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 Future Scope –

 Adding animations to the app.


 Adding a color selector for canvas, i.e. changing the color of
canvas from the default White color as per the user requirement.
 Adding a sharing button, to directly share the drawing on
various apps.
 Adding an eraser functionality that clears the specific path/stroke on
which the eraser is dragged.
 Adding a shape picker, by which a user can directly select any
particular shape from the list and can drag on the screen to create that
shape.
 Enhancing UI, by adding a BottomSheet, vectors, etc.

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 Applications of this Project-

1. This software is useful because it is friendly, simple, fast, and cost – effective.
2. It is used to operate all the functionalities of painting tool.
3. The program has always been free and users have never had to pay for upgrades,
enhancements or bug fixes.

 Conclusion –
Our project is on Paint Application Using Android .We have successfully
completed it. We take this opportunity to express our sense of indebtedness and
gratitude to group members.
We are immensely grateful to esteemed project guide Kiran Baviskar Mam
guidance without which this work would not have been possible. This project
and implementation has contributed a lot to our knowledge that has proved to
be a value addition to us.

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)


lOMoARcPSD|31626206

 Reference

https://www.google.com

https://www.youtube.com

https://www.github.com

https://www.geeksfoígeeks.com

 Skill Developed

1. Able to develop Application.


2. Able to analyze and fix the errors.
3. Able to debug the program.
4. Able to use different Packages and functions in Android

Downloaded by Aryan Nagdev (aryannagdev8@gmail.com)

You might also like