Добавил:
abhai2013@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ГМ / Lab5

.docx
Скачиваний:
15
Добавлен:
30.06.2018
Размер:
51.95 Кб
Скачать

Студента ИТ 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;

}

}

}

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

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

Соседние файлы в папке ГМ