Добавление линейных фигур в презентации на Android

Создать простую линию

Чтобы добавить простую линию на выбранный слайд презентации, выполните следующие действия:

  • Создайте экземпляр класса Presentation.
  • Получите ссылку на слайд, используя его индекс.
  • Добавьте AutoShape типа Line с помощью метода addAutoShape объекта IShapeCollection.
  • Запишите изменённую презентацию в файл PPTX.

В приведённом ниже примере мы добавили линию на первый слайд презентации.

// Создать экземпляр класса PresentationEx, представляющего файл PPTX
Presentation pres = new Presentation();
try {
    // Получить первый слайд
    ISlide sld = pres.getSlides().get_Item(0);
    
    // Добавить AutoShape типа line
    sld.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
    
    // Записать PPTX на диск
    pres.save("LineShape.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создать линию со стрелкой

Aspose.Slides for Android via Java также позволяет разработчикам настраивать некоторые свойства линии, чтобы она выглядела более привлекательно. Попробуем настроить несколько свойств линии, чтобы она выглядела как стрелка. Выполните следующие шаги:

  • Создайте экземпляр класса Presentation.
  • Получите ссылку на слайд, используя его индекс.
  • Добавьте AutoShape типа Line с помощью метода addAutoShape объекта IShapeCollection.
  • Установите Line Style в один из стилей, предлагаемых Aspose.Slides for Android via Java.
  • Установите ширину линии.
  • Установите Dash Style линии в один из стилей, предлагаемых Aspose.Slides for Android via Java.
  • Установите Arrow Head Style и Length начальной точки линии.
  • Установите Arrow Head Style и Length конечной точки линии.
  • Запишите изменённую презентацию в файл PPTX.
// Создать экземпляр класса PresentationEx, представляющего файл PPTX
Presentation pres = new Presentation();
try {
    // Получить первый слайд
    ISlide sld = pres.getSlides().get_Item(0);

    // Добавить AutoShape типа line
    IAutoShape shp = sld.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);

    // Применить некоторое форматирование к линии
    shp.getLineFormat().setStyle(LineStyle.ThickBetweenThin);
    shp.getLineFormat().setWidth(10);

    shp.getLineFormat().setDashStyle(LineDashStyle.DashDot);

    shp.getLineFormat().setBeginArrowheadLength(LineArrowheadLength.Short);
    shp.getLineFormat().setBeginArrowheadStyle(LineArrowheadStyle.Oval);

    shp.getLineFormat().setEndArrowheadLength(LineArrowheadLength.Long);
    shp.getLineFormat().setEndArrowheadStyle(LineArrowheadStyle.Triangle);

    shp.getLineFormat().getFillFormat().setFillType(FillType.Solid);
    shp.getLineFormat().getFillFormat().getSolidFillColor().setColor(new Color(PresetColor.Maroon));

    // Записать PPTX на диск
    pres.save("LineShape.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Часто задаваемые вопросы

Могу ли я преобразовать обычную линию в соединитель, чтобы она «привязывалась» к фигурам?

Нет. Обычная линия (это AutoShape типа Line) автоматически не становится соединителем. Чтобы привязать её к фигурам, используйте специальный тип Connector и соответствующие API для соединений.

Что делать, если свойства линии наследуются из темы и трудно определить конечные значения?

Read the effective properties через интерфейсы ILineFormatEffectiveData/ILineFillFormatEffectiveData — эти интерфейсы уже учитывают наследование и стили темы.

Могу ли я заблокировать линию от редактирования (перемещения, изменения размеров)?

Да. Фигуры предоставляют lock objects , которые позволяют вам disallow editing operations.