最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 給PPT添加動畫效果的示例

 更新時間:2021年04月06日 09:31:02   作者:E-iceblue  
這篇文章主要介紹了Java 給PPT添加動畫效果的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下

PPT幻燈片中對形狀可設(shè)置動畫效果,常見的動畫效果為內(nèi)置的固定類型,即動畫效果和路徑是預(yù)先設(shè)定好的固定模板,但在設(shè)計動畫效果時,用戶也可以按照自己的喜好自定義動畫動作路徑。下面,通過Java后端程序代碼來展示如何給PPT添加動畫效果。包括預(yù)設(shè)動畫以及自定動畫效果的方法。

本次測試環(huán)境包括:

  • 目標測試文檔:Power Point 2013
  • 編譯環(huán)境:IntelliJ IDEA 2018
  • JDK版本:1.8.0
  • PPT庫版本:spire.presentation.jar 4.3.2

注:在通過該PPT庫來添加動畫類型(AnimationEffectType)時,可添加約150種不同類型。

Java程序代碼

1. 添加預(yù)設(shè)動畫效果

a. 新建PPT文檔,添加形狀,設(shè)置動畫效果

import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.animation.AnimationEffectType;
import java.awt.*;
import java.awt.geom.Rectangle2D;

public class AddAnimationToShape {
 public static void main(String[]args) throws Exception{
  //創(chuàng)建PowerPoint文檔
  Presentation ppt = new Presentation();
  //獲取幻燈片
  ISlide slide = ppt.getSlides().get(0);

  //添加一個形狀到幻燈片
  IAutoShape shape = slide.getShapes().appendShape(ShapeType.CUBE, new Rectangle2D.Double(50, 150, 150, 150));
  shape.getFill().setFillType(FillFormatType.SOLID);
  shape.getFill().getSolidColor().setColor(Color.orange);
  shape.getShapeStyle().getLineColor().setColor(Color.white);

  //設(shè)置形狀動畫效果
  slide.getTimeline().getMainSequence().addEffect(shape, AnimationEffectType.CHANGE_LINE_COLOR);

  //保存文檔
  ppt.saveToFile("AddAnimationToShape.pptx", FileFormat.PPTX_2013);
 }
}

 b.加載已有PPT文檔,獲取形狀動畫效果,進行動畫效果設(shè)置,這里可做更為詳細的動畫設(shè)置,包括動畫重復(fù)播放類型、次數(shù)、持續(xù)時間、延遲時間等.

import com.spire.presentation.*;
import com.spire.presentation.drawing.animation.AnimationEffect;

public class RepeatAnimation {
 public static void main(String[] args) throws Exception{
  //加載測試文檔
  Presentation ppt = new Presentation();
  ppt.loadFromFile("test.pptx");
  //獲取第一張幻燈片
  ISlide slide = ppt.getSlides().get(0);
  //獲取幻燈片中第一個動畫效果
  AnimationEffect animation = slide.getTimeline().getMainSequence().get(0);

  //設(shè)置動畫效果循環(huán)播放類型、次數(shù)、持續(xù)時間、延遲時間
  animation.getTiming().setAnimationRepeatType(AnimationRepeatType.Number);
  animation.getTiming().setRepeatCount(2);//設(shè)置重復(fù)次數(shù)
  animation.getTiming().setDuration(2);//設(shè)置持續(xù)時間
  animation.getTiming().setTriggerDelayTime(2);//設(shè)置延遲時間
  //animation.getTiming().setAnimationRepeatType(AnimationRepeatType.UtilEndOfSlide);//設(shè)置動畫循環(huán)播放至幻燈片末
  //animation.getTiming().setAnimationRepeatType(AnimationRepeatType.UtilNextClick);//設(shè)置動畫循環(huán)播放至下次點擊

  //保存結(jié)果文檔
  ppt.saveToFile("RepeatAnimation.pptx", FileFormat.PPTX_2013);
  ppt.dispose();
 }
}

2. 添加自定義動畫效果

import com.spire.presentation.*;
import com.spire.presentation.collections.CommonBehaviorCollection;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.animation.*;

import java.awt.*;
import java.awt.geom.Point2D;

public class CustomAnimationPath {
 public static void main(String[] args) throws Exception {
  //創(chuàng)建一個空白PPT文檔
  Presentation ppt = new Presentation();

  //獲取第一張幻燈片(新建的幻燈片文檔默認已包含一張幻燈片)
  ISlide slide = ppt.getSlides().get(0);

  //添加形狀到幻燈片
  IAutoShape shape = slide.getShapes().appendShape(ShapeType.FIVE_POINTED_STAR,new Rectangle(180, 100, 170, 170));
  shape.getFill().setFillType(FillFormatType.GRADIENT);
  shape.getFill().getGradient().getGradientStops().append(0, KnownColors.LIGHT_PINK);
  shape.getFill().getGradient().getGradientStops().append(1, KnownColors.PURPLE);
  shape.getShapeStyle().getLineColor().setColor(Color.white);

  //添加動畫效果,并設(shè)置動畫效果類型為PATH_USER(自定義類型)
  AnimationEffect effect = slide.getTimeline().getMainSequence().addEffect(shape, AnimationEffectType.PATH_USER);

  //獲取自定動畫的CommonBehavior集合
  CommonBehaviorCollection commonBehaviorCollection = effect.getCommonBehaviorCollection();

  //設(shè)置動畫動作運動起點及路徑模式
  AnimationMotion motion = (AnimationMotion)commonBehaviorCollection.get(0);
  motion.setOrigin(AnimationMotionOrigin.LAYOUT);
  motion.setPathEditMode(AnimationMotionPathEditMode.RELATIVE);
  //設(shè)置動作路徑
  MotionPath motionPath = new MotionPath();
  motionPath.addPathPoints(MotionCommandPathType.MOVE_TO,new Point2D.Float[]{new Point2D.Float(0,0)},MotionPathPointsType.CURVE_AUTO,true);
  motionPath.addPathPoints(MotionCommandPathType.LINE_TO,new Point2D.Float[]{new Point2D.Float(0.1f,0.1f)},MotionPathPointsType.CURVE_AUTO,true);
  motionPath.addPathPoints(MotionCommandPathType.LINE_TO,new Point2D.Float[]{new Point2D.Float(-0.1f,0.2f)},MotionPathPointsType.CURVE_AUTO,true);
  motionPath.addPathPoints(MotionCommandPathType.END,new Point2D.Float[]{},MotionPathPointsType.CURVE_AUTO,true);
  //設(shè)置動作路徑到動畫
  motion.setPath(motionPath);

  //保存文檔
  ppt.saveToFile("result.pptx", FileFormat.PPTX_2013);
  ppt.dispose();
 }
}

以上就是Java 給PPT添加動畫效果的示例的詳細內(nèi)容,更多關(guān)于Java 給PPT添加動畫效果的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 關(guān)于Java中方法引用的示例

    關(guān)于Java中方法引用的示例

    方法引用可以認為是Lambda表達式的一種特殊形式,Lambda表達式可以讓開發(fā)者自定義抽象方法的實現(xiàn)代碼,方法引用則可以讓開發(fā)者直接引用已存在的實現(xiàn)方法,作為Lambda表達式的Lambda體(參數(shù)列表得一致),需要的朋友可以參考下
    2023-05-05
  • 5種Java經(jīng)典創(chuàng)建型模式詳解

    5種Java經(jīng)典創(chuàng)建型模式詳解

    這篇文章主要為大家詳細介紹了5種Java經(jīng)典創(chuàng)建型模式,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Springboot項目參數(shù)校驗方式(Validator)

    Springboot項目參數(shù)校驗方式(Validator)

    本文介紹了如何在Spring Boot項目中使用`spring-boot-starter-validation`包和注解來實現(xiàn)請求參數(shù)校驗,主要介紹了校驗注解的使用方法、校驗失敗的異常捕獲以及`@Validated`的分組功能
    2025-02-02
  • IDEA設(shè)置maven修改settings.xml配置文件無法加載倉庫的解決方案

    IDEA設(shè)置maven修改settings.xml配置文件無法加載倉庫的解決方案

    這篇文章主要介紹了IDEA設(shè)置maven修改settings.xml配置文件無法加載倉庫的解決方案,幫助大家更好的利用IDEA進行JAVA的開發(fā)學(xué)習(xí),感興趣的朋友可以了解下
    2021-01-01
  • 探索Java I/O 模型的演進

    探索Java I/O 模型的演進

    什么是同步?什么是異步?阻塞和非阻塞又有什么區(qū)別?本文先從 Unix 的 I/O 模型講起,介紹了5種常見的 I/O 模型。而后再引出 Java 的 I/O 模型的演進過程,并用實例說明如何選擇合適的 Java I/O 模型來提高系統(tǒng)的并發(fā)量和可用性。,需要的朋友可以參考下
    2019-06-06
  • 關(guān)于Rabbitmq死信隊列及延時隊列的實現(xiàn)

    關(guān)于Rabbitmq死信隊列及延時隊列的實現(xiàn)

    這篇文章主要介紹了關(guān)于Rabbitmq死信隊列及延時隊列的實現(xiàn),TTL就是消息或者隊列的過期功能,當消息過期就會進到死信隊列,死信隊列和普通隊列沒啥區(qū)別,然后我們只需要配置一個消費者來消費死信隊列里面的消息就可以了,需要的朋友可以參考下
    2023-08-08
  • 關(guān)于junit測試需要的依賴

    關(guān)于junit測試需要的依賴

    這篇文章主要介紹了關(guān)于junit測試需要的依賴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java編程實現(xiàn)用hash方法切割文件

    Java編程實現(xiàn)用hash方法切割文件

    這篇文章主要介紹了Java編程實現(xiàn)用hash方法切割文件,簡單介紹了hash的概念,然后分享了使用方法示例,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • 解決IDEA 左側(cè)Project中沒有out文件夾的問題

    解決IDEA 左側(cè)Project中沒有out文件夾的問題

    這篇文章主要介紹了解決IDEA 左側(cè)Project中沒有out文件夾的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java使用elasticsearch基礎(chǔ)API使用案例講解

    Java使用elasticsearch基礎(chǔ)API使用案例講解

    這篇文章主要介紹了Java使用elasticsearch基礎(chǔ)API使用案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

子长县| 邢台市| 社旗县| 县级市| 涞源县| 南投县| 和平区| 土默特右旗| 湘潭市| 南漳县| 镇平县| 松江区| 宣化县| 雷山县| 筠连县| 即墨市| 建平县| 阿克| 凤翔县| 苍溪县| 张家界市| 宁海县| 遵义县| 无锡市| 平江县| 台南县| 鄱阳县| 申扎县| 富锦市| 望城县| 达孜县| 广平县| 依安县| 鲁山县| 那曲县| 板桥市| 鹿泉市| 富阳市| 滨海县| 山东省| 应城市|