Sobes.tech
Junior

Canvas дар Android чист?

sobes.tech AI

Ҷавоб аз AI

Canvas дар Android ўяўляе сабой паверхню для малявання. Гэта аб'ект, які прадастаўляе метады для малявання графічных прамітываў (пунктаў, ліній, прамавугольнікаў, кругоў, тэксту, малюнкаў) на бітмапе (Bitmap) або іншай паверхні.

Асноўныя канцэпцыі:

  • Маляванне: Canvas прадастаўляе API для выканання аперацый малявання, такіх як drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Сістэма каардынат: Выкарыстоўвае двухмерную сістэму каардынат, дзе пункт (0,0) знаходзіцца ў левым верхнім куце.
  • Стан: Canvas мае стан, які ўключае бягучыя трансфармацыі (зрух, маштабаванне, паварот) і вобласць вырэзкі (clip region), якія можна захоўваць і аднаўляць (save() і restore()).
  • Paint: Аб'екты Paint выкарыстоўваюцца для вызначэння стылю малявання, такога як колер, таўшчыня лініі, цені, шрыфты і г.д. Canvas выкарыстоўвае бягучы Paint для кожнай аперацыі малявання.

Прыклад выкарыстання ў спецыяльным View:

// Унутры метаду onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Стварэнне аб'екта Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Усталёўваем колер

    // Малюем прамавугольнік
    canvas.drawRect(10, 10, 100, 100, paint);

    // Малюем круг
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

    // Усталёўваем тэкст
    paint.setColor(Color.BLACK);
    paint.setTextSize(30);
    canvas.drawText("Hello, Canvas!", 10, 200, paint);
}

Canvas цесна звязаны з аб'ектамі View. Калі сістэма малюе View, яна стварае аб'ект Canvas і перадае яго ў метад onDraw() View. Затым View выкарыстоўвае гэты Canvas для малявання свайго зместу.