Diavetítések diavetítési áttűnéseinek kezelése Androidon
Áttekintés
A diavetítés áttűnések szabályozzák, hogyan jelennek meg a diák a diavetítés során. Az Aspose.Slides for Android via Java segítségével minden diára kiválaszthat egy áttűnési hatást, beállíthatja a haladást egérkattintással vagy időzítővel, valamint módosíthatja a hatáshoz specifikus opciókat. Ez a cikk Java példákat használ az áttűnések alkalmazásához, a pontos áttűnési időtartamok meghatározásához, a diák időzítésének kezeléséhez és egy Morph áttűnés létrehozásához két dia között. A példák azt is bemutatják, hogyan menthetőek a beállítások PPTX fájlba.
Diavetítés áttűnés hozzáadása
Az áttűnés alkalmazásához töltsön be egy prezentációt a Presentation osztállyal, és érje el a dia áttűnési beállításait a getSlideShowTransition segítségével. Használja a setType metódust a TransitionType felsorolás egy értékével, majd mentse a prezentációt.
A következő példa kör (Circle) áttűnését alkalmazza az első diára, és comb (Comb) áttűnését a másodikra. Használjon egy input.pptx fájlt, amely legalább két diát tartalmaz.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
if (presentation.getSlides().size() >= 2) {
presentation.getSlides().get_Item(0).getSlideShowTransition().setType(TransitionType.Circle);
presentation.getSlides().get_Item(1).getSlideShowTransition().setType(TransitionType.Comb);
presentation.save("slide-transitions.pptx", SaveFormat.Pptx);
} else {
System.out.println("The input presentation must contain at least two slides.");
}
} finally {
presentation.dispose();
}
Speciális diavetítés áttűnés hozzáadása
Megadhatja, mennyi ideig marad a dia a képernyőn, és hogy egérkattintás előreviszi-e a diavetítést. A következő módszerek szabályozzák ezt a viselkedést:
- setAdvanceOnClick lehetővé teszi a nézőnek, hogy egérkattintással lépjen előre.
- setAdvanceAfter engedélyezi az automatikus előrehaladást.
- setAdvanceAfterTime határozza meg az automatikus előrehaladás késleltetését ezredmásodpercben.
Engedélyezze mind a kattintásos, mind az időzített előrehaladást, hogy a néző kattintással vagy a várakozási idő leteltével folytathassa a diavetítést. Ha csak az időzítőt kívánja használni, adja át a false értéket a setAdvanceOnClick metódusnak. A késleltetés azt határozza meg, mikor lép tovább a diavetítés; nem állítja be a vizuális áttűnési effektus időtartamát.
Ez a példa különböző hatásokat rendel az első három diára, és automatikus előrehaladást engedélyez 3, 5 és 7 másodperc után, sorrendben. Egérkattintással is lehet előrelépni ezeken a diákon. Használjon egy input.pptx fájlt, amely legalább három diát tartalmaz.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
if (presentation.getSlides().size() >= 3) {
ISlideShowTransition firstTransition = presentation.getSlides().get_Item(0).getSlideShowTransition();
firstTransition.setType(TransitionType.Circle);
firstTransition.setAdvanceOnClick(true);
firstTransition.setAdvanceAfter(true);
firstTransition.setAdvanceAfterTime(3000);
ISlideShowTransition secondTransition = presentation.getSlides().get_Item(1).getSlideShowTransition();
secondTransition.setType(TransitionType.Comb);
secondTransition.setAdvanceOnClick(true);
secondTransition.setAdvanceAfter(true);
secondTransition.setAdvanceAfterTime(5000);
ISlideShowTransition thirdTransition = presentation.getSlides().get_Item(2).getSlideShowTransition();
thirdTransition.setType(TransitionType.Zoom);
thirdTransition.setAdvanceOnClick(true);
thirdTransition.setAdvanceAfter(true);
thirdTransition.setAdvanceAfterTime(7000);
presentation.save("advanced-transitions.pptx", SaveFormat.Pptx);
} else {
System.out.println("The input presentation must contain at least three slides.");
}
} finally {
presentation.dispose();
}
A timed előrehaladás engedélyezésének ellenőrzéséhez hívja meg a getAdvanceAfter metódust. A tárolt késleltetés önmagában nem jelzi, hogy az időzítő aktív.
A következő példa megnyitja a fent mentett fájlt, jelentést készít minden engedélyezett időzítőről, és letiltja az automatikus előrehaladást azoknak a diáknak, amelyek késleltetése több mint két másodperc. Engedélyezi a kattintást ezeknél a diáknál, és elmenti a frissített beállításokat.
import com.aspose.slides.*;
Presentation presentation = new Presentation("advanced-transitions.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
ISlideShowTransition transition = slide.getSlideShowTransition();
if (transition.getAdvanceAfter()) {
System.out.println("Slide " + slide.getSlideNumber() + ": advance after " + transition.getAdvanceAfterTime() + " ms.");
if (transition.getAdvanceAfterTime() > 2000) {
transition.setAdvanceAfter(false);
transition.setAdvanceOnClick(true);
}
}
}
presentation.save("adjusted-transitions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az áttűnés időzítésének pontos szabályozása
Használja a setDuration metódust egy áttűnési effektus pontos hosszának ezredmásodpercben történő megadásához. A dia getSlideShowTransition metódusa ezeket a beállításokat az ISlideShowTransition interfészen keresztül teszi elérhetővé:
| Módszer | Leírás |
|---|---|
| setDuration | Beállítja magának az áttűnési effektusnak az időtartamát ezredmásodpercben. |
| setAdvanceAfterTime | Beállítja az automatikus dia előrehaladás előtti késleltetést ezredmásodpercben. A setAdvanceAfter metódusnak true értéket adva aktiválja ezt az időzítőt. |
| setSpeed | Kiválaszt egy előre definiált sebességkategóriát a TransitionSpeed felsorolásból: Slow, Medium vagy Fast. Akkor használják, ha nincs megadva pontos időtartam. |
A setDuration csak az áttűnési effektust szabályozza; nem határozza meg, mennyi ideig látható a dia. Az automatikus előrehaladás késleltetését külön kell beállítani. Ha nincs explicit időtartam megadva, az Aspose.Slides a effektus időtartamát a áttűnés típusából és a getSpeed értékből számítja.
Azonos időtartam alkalmazása minden diára
Az egységes ritmus érdekében alkalmazza ugyanazt a hatást és pontos időtartamot minden diára. Ez a példa betölti a input.pptx fájlt, a TransitionType enumerációból a Fade-ot választja, és minden áttűnésnek 750 ezredmásodperc időtartamot ad. Külön engedélyezi az automatikus előrehaladást 5 000 ezredmásodperc után, és letiltja a kattintásos előrehaladást, majd elmenti az eredményt PPTX formátumban.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
ISlideShowTransition transition = slide.getSlideShowTransition();
transition.setType(TransitionType.Fade);
transition.setDuration(750);
// Az automatikus előrehaladást konfigurálja a hatás időtartamától függetlenül.
transition.setAdvanceAfter(true);
transition.setAdvanceAfterTime(5000);
transition.setAdvanceOnClick(false);
}
presentation.save("precise-transitions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Különböző időtartamok beállítása egyes diákhoz
A különböző diák különböző effektus időtartamokat használhatnak. Például egy rövid áttűnést a címdiára, és egy hosszabb áttűnést a szakasz bevezetőjére. Ez a példa 500 ezredmásodpercet állít be az első diára, és 1 200 ezredmásodpercet a másodikra. Használjon egy input.pptx fájlt, amely legalább két diát tartalmaz.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
if (presentation.getSlides().size() >= 2) {
ISlideShowTransition firstTransition = presentation.getSlides().get_Item(0).getSlideShowTransition();
firstTransition.setType(TransitionType.Fade);
firstTransition.setDuration(500);
ISlideShowTransition secondTransition = presentation.getSlides().get_Item(1).getSlideShowTransition();
secondTransition.setType(TransitionType.Push);
secondTransition.setDuration(1200);
presentation.save("individual-transition-durations.pptx", SaveFormat.Pptx);
} else {
System.out.println("The input presentation must contain at least two slides.");
}
} finally {
presentation.dispose();
}
Az áttűnések összehangolása animált kimenettel
Animált animated GIF, HTML5 prezentáció vagy videó előkészítésekor állítsa be a pontos áttűnési időtartamokat exportálás előtt, hogy egyezzen a kívánt tempóval. Például használjon 600 ezredmásodperces fade-et a jelenetek között, és állítsa be minden dia előrehaladási késleltetését külön, hogy legyen idő a narrációnak vagy tartalomnak.
GIF és videó esetén igazítsa a kimeneti képkockasebességet az effektus időtartamához: 600 ezredmásodperc 18 képkockának felel meg 30 fps mellett. HTML5 esetén engedélyezze az animált áttűnéseket az exportálási beállításokban. Ellenőrizze a választott export formátum által támogatott hatásokat és időzítési lehetőségeket, és tekintse meg az előnézetet a szinkronizáció ellenőrzéséhez.
Létező áttűnési időtartam beolvasása
Hívja meg a getDuration metódust az áttűnés módosítása előtt, hogy megállapítsa, van-e tárolt explicit érték. A -1 érték azt jelenti, hogy nincs explicit időtartam beállítva; egy nemnegatív érték a tárolt ezredmásodpercben megadott időt jelzi. A nem beállított érték nem a kiszámított lejátszási időt jelenti: az Aspose.Slides a áttűnés típusát és a getSpeed értékét használja a időtartam meghatározásához. Egy áttűnési típus beállítása inicializálhat egy időtartamot, ezért először tekintse át az eredeti beállításokat.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
ISlideShowTransition transition = slide.getSlideShowTransition();
int duration = transition.getDuration();
if (duration >= 0) {
System.out.println("Slide " + slide.getSlideNumber() + ": stored transition duration is " + duration + " ms.");
} else {
System.out.println("Slide " + slide.getSlideNumber() + ": no explicit duration; timing depends on transition type " + transition.getType() + " and speed " + transition.getSpeed() + ".");
}
}
} finally {
presentation.dispose();
}
Morph áttűnés
A Morph áttűnés animálja a változásokat egymás utáni diák objektumai között. Egyszerű Morph hatás létrehozásához klónozzon egy diát, mozdítsa vagy módosítsa méretét egy objektumnak a klónon, és alkalmazza a Morph áttűnést a második diára. Ez lehetővé teszi, hogy az áttűnés a megfelelő objektumokat animálja az eredeti és a módosított állapot között.
A következő példa létrehoz egy diát egy szöveges téglalappal, klónozza a diát, és megváltoztatja a téglalap pozícióját és méretét a klónon. Ezután a TransitionType felsorolásból a Morph-ot választja a második diára. Nyissa meg a mentett fájlt egy Morph-ot támogató prezentációs megjelenítőben, hogy lássa a hatást a diavetítés során.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide firstSlide = presentation.getSlides().get_Item(0);
IAutoShape rectangle = firstSlide.getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 400, 100);
rectangle.getTextFrame().setText("Morph transition");
ISlide secondSlide = presentation.getSlides().addClone(firstSlide);
IShape movedRectangle = secondSlide.getShapes().get_Item(0);
movedRectangle.setX(movedRectangle.getX() + 100);
movedRectangle.setY(movedRectangle.getY() + 50);
movedRectangle.setWidth(movedRectangle.getWidth() - 200);
movedRectangle.setHeight(movedRectangle.getHeight() - 10);
secondSlide.getSlideShowTransition().setType(TransitionType.Morph);
presentation.save("morph-transition.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Morph áttűnés típusok
A TransitionMorphType felsorolás szabályozza, hogy a Morph hogyan párosítja és animálja a tartalmat:
- ByObject minden alakzatot egy teljes objektumként kezel.
- ByWord a szöveget úgy animálja, hogy ahol lehetséges, szavak alapján párosít.
- ByChar a szöveget karakterek alapján animálja, ahol lehetséges.
Használja a setType metódust a Morph kiválasztásához, mielőtt hozzáférne a getValue metódushoz. Az érték ezután biztosítja az IMorphTransition interfészt, amelynek a setMorphType metódusa választja ki a párosítási módot.
Ez a példa megnyitja az előző szakaszban létrehozott prezentációt, és beállítja a második diát úgy, hogy szó-alapú Morph animációt használjon.
import com.aspose.slides.*;
Presentation presentation = new Presentation("morph-transition.pptx");
try {
if (presentation.getSlides().size() >= 2) {
ISlideShowTransition transition = presentation.getSlides().get_Item(1).getSlideShowTransition();
transition.setType(TransitionType.Morph);
ITransitionValueBase transitionValue = transition.getValue();
if (transitionValue instanceof IMorphTransition) {
IMorphTransition morphTransition = (IMorphTransition) transitionValue;
morphTransition.setMorphType(TransitionMorphType.ByWord);
presentation.save("morph-by-word.pptx", SaveFormat.Pptx);
} else {
System.out.println("Morph transition options are unavailable.");
}
} else {
System.out.println("The input presentation must contain at least two slides.");
}
} finally {
presentation.dispose();
}
Áttűnési hatások beállítása
Egyes áttűnések további opciókat kínálnak, például irányt vagy azt, hogy a hatás fekete képernyőről indul-e. Az elérhető opciók a [setType]‑val kiválasztott áttűnéstől függenek. Először állítsa be a típust, majd használja a megfelelő interfészt a [getValue]‑ból.
A következő példa egy Cut áttűnéset alkalmaz az input.pptx első diájára. A setFromBlack metódust a IOptionalBlackTransition interfészen keresztül hívja, hogy az áttűnés fekete képernyőről induljon.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ISlideShowTransition transition = presentation.getSlides().get_Item(0).getSlideShowTransition();
transition.setType(TransitionType.Cut);
ITransitionValueBase transitionValue = transition.getValue();
if (transitionValue instanceof IOptionalBlackTransition) {
IOptionalBlackTransition cutTransition = (IOptionalBlackTransition) transitionValue;
cutTransition.setFromBlack(true);
presentation.save("cut-from-black.pptx", SaveFormat.Pptx);
} else {
System.out.println("Cut transition options are unavailable.");
}
} finally {
presentation.dispose();
}
GYIK
Le tudom-e szabályozni egy diavetítés áttűnési lejátszási sebességét?
Igen. Ha pontos effektus időtartamra van szüksége ezredmásodpercben, használja a setDuration metódust. Ha egy előre definiált TransitionSpeed kategória—Slow, Medium vagy Fast—elég, és nincs explicit időtartam megadva, akkor a setSpeed használható. Ezek a beállítások az áttűnési hatást szabályozzák az automatikus előrehaladási késleltetéstől függetlenül.
Csatolhatok-e hangot egy áttűnéshez, és ismételhetem azt?
Igen. A beágyazott hangot a setSound metódussal adhatja hozzá, a TransitionSoundMode felsorolásból a StartSound értéket adja át a setSoundMode metódusnak, és a setSoundLoop metódust true‑ra állítja. A hang addig ismétlődik, amíg a diavetítésben a következő hangesemény meg nem jelenik.
Mi a leggyorsabb módja annak, hogy ugyanazt az áttűnést alkalmazzuk minden diára?
A legegyszerűbb módja, ha végigiterál a prezentáció getSlides gyűjteményén, és minden dia áttűnésénél a setType metódust ugyanazzal az értékkel hívja. Az időzítési és effektus beállításokat ugyanabban a ciklusban állítsa be, hogy a viselkedés következetes maradjon a diák között.
Hogyan ellenőrizhetem, melyik áttűnés van jelenleg beállítva egy dián?
Hívja meg a getType metódust a dia getSlideShowTransition eredményén. Ez visszaad egy értéket a TransitionType felsorolásból; a None azt jelenti, hogy nincs áttűnési effektus alkalmazva.