ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.06.2019

Просмотров: 92

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Студента ИТ 14-1 Красовского А.В.

Лабораторная работа 5

Разработка графического редактора

Цель работы: разработать графический редактор

Выполнение задания:
Программный код:

Класс Point:

package com.example.abhai.graphiceditor;


import android.graphics.Color;

import android.graphics.Paint;


class Point {

private Paint paint;

private float x;

private float y;



Point(float x, float y, String color) {

paint = new Paint();

paint.setStrokeWidth(2);

this.x = x;

this.y = y;


switch (color) {

case "Red":

paint.setColor(Color.RED);

break;

case "Blue":

paint.setColor(Color.BLUE);

break;

case "Green":

paint.setColor(Color.GREEN);

break;

case "Yellow":

paint.setColor(Color.YELLOW);

break;

default:

paint.setColor(Color.RED);

}

}



Paint getPaint() {

return paint;

}



float getX() {

return x;

}



float getY() {

return y;

}

}







Класс MainActivity:

package com.example.abhai.graphiceditor;


import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.TextView;


import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {

private String color = "Red";


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearLayout);

linearLayout.addView(new DrawView(this));


View.OnClickListener onClickListener = new View.OnClickListener() {

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.buttonBlue:

color = "Blue";

break;

case R.id.buttonGreen:

color = "Green";

break;

case R.id.buttonRed:

color = "Red";

break;

case R.id.buttonYellow:

color = "Yellow";

break;

}

}

};


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

buttonBlue.setOnClickListener(onClickListener);


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

buttonGreen.setOnClickListener(onClickListener);


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

buttonRed.setOnClickListener(onClickListener);


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

buttonYellow.setOnClickListener(onClickListener);

}


private class DrawView extends View {

private ArrayList<Point> previousPoint = new ArrayList<>();

private ArrayList<Point> currentPoint = new ArrayList<>();


private boolean start;



public DrawView(Context context) {

super(context);

start = true;

}


@Override

protected void onDraw(Canvas canvas) {

for (int i = 0; i < previousPoint.size() - 1; i++)

canvas.drawLine(previousPoint.get(i).getX(), previousPoint.get(i).getY(),

currentPoint.get(i).getX(), currentPoint.get(i).getY(), previousPoint.get(i).getPaint());

}


@Override

public boolean onTouchEvent(MotionEvent event) {

if (start || event.getAction() == MotionEvent.ACTION_DOWN) {

previousPoint.add(new Point(event.getX(), event.getY(), color));

currentPoint.add(new Point(event.getX(), event.getY(), color));

start = false;

} else {

previousPoint.add(currentPoint.get(currentPoint.size() - 1));

currentPoint.add(new Point(event.getX(), event.getY(), color));

postInvalidate();

}

return true;

}

}

}

Результат работы программы:

Вывод: в ходе лабораторной работы были получены практические навыки разработки графического редактора