在 Android 上管理演示文稿的幻灯片切换

概述

为了更易于理解,我们示例演示了使用 Aspose.Slides for Android via Java 管理简单幻灯片切换的方式。开发人员不仅可以在幻灯片上应用不同的切换效果,还可以自定义这些切换效果的行为。

添加幻灯片切换

要创建一个简单的幻灯片切换效果,请按以下步骤操作:

  1. 创建一个 演示文稿 类的实例。
  2. 通过 TransitionType 枚举,从 Aspose.Slides for Android via Java 提供的切换效果中为幻灯片应用幻灯片切换类型。
  3. 写入修改后的演示文稿文件。
// 实例化 Presentation 类以加载源演示文稿文件
Presentation presentation = new Presentation("AccessSlides.pptx");
try {
    // 在第 1 张幻灯片上应用圆形切换
    presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Circle);

    // 在第 2 张幻灯片上应用梳形切换
    presentation.getSlides().get_Item(1).getSlideShowTransition().setType(TransitionType.Comb);

    // 将演示文稿写入磁盘
    presentation.save("SampleTransition_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

添加高级幻灯片切换

在上面的章节中,我们仅在幻灯片上应用了一个简单的切换效果。现在,为了让该简单切换效果更好并可控,请按以下步骤操作:

  1. 创建一个 演示文稿 类的实例。
  2. 通过 TransitionType 枚举,从 Aspose.Slides for Android via Java 提供的切换效果中为幻灯片应用幻灯片切换类型。
  3. 您还可以将切换设置为“单击后前进”、在特定时间段后前进,或两者兼而有之。
  4. 如果幻灯片切换被设为“单击后前进”,则只有在有人单击鼠标时切换才会前进。此外,如果设置了“在此时间后前进”属性,切换将在指定的时间过去后自动前进。
  5. 将修改后的演示文稿写入为演示文稿文件。
// 实例化表示演示文稿文件的 Presentation 类
Presentation pres = new Presentation("BetterSlideTransitions.pptx");
try {
    // 在第 1 张幻灯片上应用圆形切换
    pres.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Circle);

    // 设置 3 秒的切换时间
    pres.getSlides().get_Item(0).getSlideShowTransition().setAdvanceOnClick(true);
    pres.getSlides().get_Item(0).getSlideShowTransition().setAdvanceAfterTime(3000);

    // 在第 2 张幻灯片上应用梳形切换
    pres.getSlides().get_Item(1).getSlideShowTransition().setType(TransitionType.Comb);
    
    // 设置 5 秒的切换时间
    pres.getSlides().get_Item(1).getSlideShowTransition().setAdvanceOnClick(true);
    pres.getSlides().get_Item(1).getSlideShowTransition().setAdvanceAfterTime(5000);

    // 在第 3 张幻灯片上应用缩放切换
    pres.getSlides().get_Item(2).getSlideShowTransition().setType(TransitionType.Zoom);
    
    // 设置 7 秒的切换时间
    pres.getSlides().get_Item(2).getSlideShowTransition().setAdvanceOnClick(true);
    pres.getSlides().get_Item(2).getSlideShowTransition().setAdvanceAfterTime(7000);

    // 将演示文稿写入磁盘
    pres.save("SampleTransition_out.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}

Morph 切换

Morph 切换允许您在幻灯片之间实现平滑的运动动画。本文介绍了该概念及如何使用 Morph 切换。要有效使用 Morph 切换,您需要准备两张至少有一个对象相同的幻灯片。最简便的方式是复制幻灯片,然后在第二张幻灯片上将对象移动到其他位置。

以下代码片段展示了如何将包含文本的幻灯片克隆添加到演示文稿,并为第二张幻灯片设置 morph 类型 的切换。

Presentation presentation = new Presentation();
try {
    AutoShape autoshape = (AutoShape)presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 400, 100);
    autoshape.getTextFrame().setText("Morph Transition in PowerPoint Presentations");

    presentation.getSlides().addClone(presentation.getSlides().get_Item(0));

    IShape shape = presentation.getSlides().get_Item(1).getShapes().get_Item(0);
    shape.setX(shape.getX() + 100);
    shape.setY(shape.getY() + 50);
    shape.setWidth(shape.getWidth() - 200);
    shape.setHeight(shape.getHeight() - 10);

    presentation.getSlides().get_Item(1).getSlideShowTransition().setType(com.aspose.slides.TransitionType.Morph);

    presentation.save("presentation-out.pptx", SaveFormat.Pptx);
}
finally {
    presentation.dispose();
}

形变切换类型

已新增 TransitionMorphType 枚举。它表示了不同的 Morph 幻灯片切换类型。

TransitionMorphType 枚举有三个成员:

  • ByObject:在进行形变切换时将形状视为不可分割的对象。
  • ByWord:在可能的情况下按单词转移文本进行形变切换。
  • ByChar:在可能的情况下按字符转移文本进行形变切换。

以下代码片段展示了如何为幻灯片设置形变切换并更改形变类型:

Presentation presentation = new Presentation("presentation.pptx");
try {
    presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Morph);
    ((IMorphTransition)presentation.getSlides().get_Item(0).getSlideShowTransition().getValue()).setMorphType(TransitionMorphType.ByWord);
    presentation.save("presentation-out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

设置切换效果

Aspose.Slides for Android via Java 支持设置如“从黑色出现”“从左侧”“从右侧”等切换效果。要设置切换效果,请按以下步骤操作:

  • 创建一个 演示文稿 类的实例。
  • 获取幻灯片的引用。
  • 设置切换效果。
  • 将演示文稿写入为 PPTX 文件。

在下面的示例中,我们设置了切换效果。

// 创建 Presentation 类的实例
Presentation presentation = new Presentation("AccessSlides.pptx");
try {
    // 设置效果
    presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Cut);
    ((OptionalBlackTransition)presentation.getSlides().get_Item(0).getSlideShowTransition().getValue()).setFromBlack(true);
    
    // 将演示文稿写入磁盘
    presentation.save("SetTransitionEffects_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

常见问题

我可以控制幻灯片切换的播放速度吗?

是的。使用 TransitionSpeed 设置(例如慢/中/快),通过 speed 方法来控制切换的速度。

我可以为切换附加音频并使其循环吗?

可以。您可以为切换嵌入音频,并通过诸如 setSoundsetSoundModesetSoundLoop 等设置来控制其行为,同时还可以使用 setSoundIsBuiltInsetSoundName 等元数据。

将相同切换应用于每张幻灯片的最快方法是什么?

在每张幻灯片的切换设置中配置所需的切换类型;切换是按幻灯片存储的,因此在所有幻灯片上使用相同类型即可实现一致效果。

我如何检查当前幻灯片上设置了哪种切换?

检查幻灯片的 transition settings 并读取其 transition type,该值即可明确指示当前应用的切换效果。