Ваш браузер устарел. Рекомендуем обновить его до последней версии.




 



 


Delphi

 

 


 

 

Построение первых приложений для устройств на базе Android

Класс Canvas и его методы. Графические примитивы

Класс Canvas содержит методы для рисования, которые рисуют графические примитивы. Вначале необходимо подготовить кисть для рисования с помощью класса Paint. Класс Paint позволяет установить у графических примитивов цвет, прозрачность, толщину линии, стиль, сглаживание, размер шрифта, обводку и другое. В программе представлены некоторые графические примитивы и их обработка.

_______________MainActivity.java_______________
import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;

import static android.graphics.Paint.Style.STROKE;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new DrawView(this));

// вертикальная ориентация экрана
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

// скрыть панель уведомлений
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

class DrawView extends View {

Paint paint;
Resources resources;
private ImageView imageview;

public DrawView(Context context) {
super(context);
paint = new Paint(); // создание экземпляра класса Paint
}

@Override
protected void onDraw(Canvas canvas) {

// настройка холста - прозрачность, красный, зеленый, синий
canvas.drawARGB(255,255,222,173);
            // настройка кисти
paint.setStyle(Paint.Style.FILL); // заливка всех графических примитивов
paint.setAntiAlias(true); // режим сглаживания
paint.setStrokeWidth(20); // толщина линии

paint.setColor(Color.RED); // красный цвет кисти
canvas.drawPoint(750, 700, paint); // рисует точку на холсте

paint.setColor(Color.rgb(255, 100, 0)); // цвет рисования из полной палитры
canvas.drawLine(860, 1200, 460, 100, paint); // рисует линию

paint.setColor(Color.rgb(150, 0, 200)); // цвет рисования из полной палитры
canvas.drawCircle(800, 300, 200, paint); // рисует круг

paint.setStyle(STROKE); // убрать заливку
paint.setColor(Color.rgb(100, 0, 255)); // цвет рисования из полной палитры
canvas.drawCircle(600, 1300, 400, paint); // рисует круг

paint.setStyle(STROKE); // убрать заливку
paint.setColor(Color.YELLOW); // желтый цвет кисти
canvas.drawCircle(750, 350, 100, paint); // рисует круг

paint.setStyle(Paint.Style.FILL); // установить заливку
paint.setColor(Color.MAGENTA); // пурпурный цвет кисти
canvas.drawRect(100, 300, 500, 1000, paint); // прямоугольник

paint.setStyle(STROKE); // убрать заливку
paint.setColor(Color.rgb(0, 200, 150)); // цвет рисования из полной палитры
canvas.drawRect(100, 1400, 800, 1800, paint); // прямоугольник

paint.setColor(Color.rgb(0, 0, 0)); // цвет рисования из полной палитры
paint.setTextSize(100); // размер текста
paint.setStrokeWidth(5); // толщина линии
canvas.drawText("BigCamagan.ru", 260, 1330, paint); // рисует текст

paint.setStrokeWidth(20); // толщина линии
paint.setStyle(Paint.Style.FILL); // установить заливку
// Color.argb (прозрачность, красный, зеленый, синий)
paint.setColor(Color.argb(100,255, 0, 0));
// овал 3-го типа в прямоугольнике RectF
RectF oval3 = new RectF(150, 80, 450, 800);
canvas.drawOval(oval3, paint); // рисует овал

// прямоугольник с закругленными углами
RectF rect = new RectF(320, 1050, 730, 1220);
paint.setColor(Color.GRAY);
canvas.drawRoundRect(rect, 30, 30, paint); // радиусы закругления углов

paint.setColor(Color.RED);
paint.setStrokeWidth(5); // толщина линии
canvas.drawLine(200, 1850, 700, 1850, paint); // рисует линию
canvas.drawLine(200, 1850, 450, 1450, paint); // рисует линию
canvas.drawLine(450, 1450, 700, 1850, paint); // рисует линию

paint.setStyle(STROKE); // убрать заливку
paint.setStrokeWidth(20); // толщина линии
paint.setColor(Color.rgb(255, 100, 0)); // цвет рисования из полной палитры
RectF oval1 = new RectF(850, 500, 1050, 1000);
canvas.drawOval(oval1, paint); // рисует овал в области указанного прямоугольника

}
}
}

Некоторые методы класса Canvas

drawARGB(), drawRGB() и drawColor() – заполнение холста сплошным цветом.

drawArc() – рисует дугу между двумя углами внутри заданной прямоугольной области.

drawBitmap() – рисует растровое изображение на холсте. Вы можете изменять внешний вид целевой картинки, указывая итоговый размер или используя матрицу для преобразования.

drawBitmapMesh() – рисует изображение с использованием сетки, с помощью которой можно управлять отображением итоговой картинки, перемещая точки внутри неё.

drawCircle() – рисует окружность с определенным радиусом вокруг заданной точки.

drawLine(s)() – рисует линию (или последовательность линий) между двумя точками.

drawOval() – рисует овал на основе прямоугольной области.

drawPaint() – закрашивает весь холст с помощью заданного объекта Paint.

drawPath() – рисует указанный контур, используется для хранения набора графических примитивов в виде единого объекта.

drawPicture() – рисует объект Picture внутри заданного прямоугольника.

drawPoint() – рисует точку в заданном месте.

drawPosText() – рисует текстовую строку, учитывая смещение для каждого символа.

drawRect() – рисует прямоугольник.

drawRoundRect() – рисует прямоугольник с закругленными углами.

drawText() – рисует текстовую строку на холсте. Шрифт, размер, цвет и свойства отображения текста задаются в соответствующем объекте Paint.

drawTextOnPath() – рисует текст, который отображается вокруг определенного контура.

drawVertices() – рисует набор треугольников в виде совокупности вершинных точек.

rotate() и restore() – вращение холста.

scale() и translate() – изменение и перемещение координатной системы.


Flag Counter
Яндекс.Метрика
200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время
Besucherzahler russain brides
счетчик посещений

Выбери лучшее!

allbest