Android'de Sunumlarda SmartArt Şekil Düğümlerini Yönetme
Genel Bakış
PowerPoint sunumlarındaki SmartArt grafikleri, metin içeren ve diyagramın yapısını tanımlayan düğümler aracılığıyla düzenlenir. Aspose.Slides, bu SmartArt düğümleriyle programlı olarak çalışmanıza olanak tanır: yeni düğümler ve alt düğümler ekleyebilir, alt düğümleri belirli bir konuma ekleyebilir, mevcut düğümlere erişebilir ve metin, seviye ve konumlarını okuyabilirsiniz.
Bu makale, SmartArt şekil düğümlerinin nasıl yönetileceğini açıklar. Düğümlerin nasıl kaldırılacağını, alt düğümlerin indeks veya konuma göre nasıl kullanılacağını, asistan düğümünün normal düğüme nasıl dönüştürüleceğini, SmartArt düğüm şekillerinin konum, boyut ve dönüşünün nasıl ayarlanacağını, düğüm dolgu formatlarının nasıl ayarlanacağını ve bir SmartArt alt düğümü için küçük resim görüntüsü nasıl oluşturulacağını gösterir.
SmartArt Düğümü Ekleme
Aspose.Slides for Android via Java, SmartArt şekillerini en kolay şekilde yönetmek için en basit API’yi sağlamıştır. Aşağıdaki örnek kod, SmartArt şekli içinde düğüm ve alt düğüm eklemeye yardımcı olacaktır.
- Presentation sınıfının bir örneğini oluşturun ve SmartArt Şekli içeren sunumu yükleyin.
- İlk slaytın referansını indeksini kullanarak alın.
- İlk slayt içindeki her şekli döngüyle gezinin.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt şekli üzerindeki NodeCollection içinde Yeni bir Düğüm Ekle ve metni TextFrame içinde ayarlayın.
- Şimdi, yeni eklenen SmartArt Düğümüne bir Alt Düğüm ekleyin ve metni TextFrame içinde ayarlayın.
- Sunumu kaydedin.
// İstenen sunumu yükle
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// İlk slayt içindeki her şekli dolaş
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (shape instanceof SmartArt)
{
// Şekli SmartArt tipine dönüştür
SmartArt smart = (SmartArt) shape;
// Yeni bir SmartArt Düğümü ekleme
SmartArtNode TemNode = (SmartArtNode) smart.getAllNodes().addNode();
// Metin ekleme
TemNode.getTextFrame().setText("Test");
// Üst düğümde yeni alt düğüm ekleme. Koleksiyonun sonuna eklenecek
SmartArtNode newNode = (SmartArtNode) TemNode.getChildNodes().addNode();
// Metin ekleme
newNode.getTextFrame().setText("New Node Added");
}
}
// Sunumu kaydetme
pres.save("AddSmartArtNode.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Belirli Bir Konumda SmartArt Düğümü Ekleme
Aşağıdaki örnek kodda, SmartArt şeklinin ilgili düğümlerine ait alt düğümlerin belirli bir konuma nasıl ekleneceği açıklanmıştır.
- Presentation sınıfının bir örneğini oluşturun.
- İlk slaytın referansını indeksini kullanarak alın.
- Erişilen slayta bir StackedList türünde SmartArt şekli ekleyin.
- Eklenen SmartArt şeklinin ilk düğümüne erişin.
- Seçilen Düğüm için konum 2’de bir Alt Düğüm ekleyin ve metnini ayarlayın.
- Sunumu kaydedin.
// Bir sunum örneği oluşturma
Presentation pres = new Presentation();
try {
// Sunum slaydına erişme
ISlide slide = pres.getSlides().get_Item(0);
// Smart Art IShape ekle
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);
// İndeks 0'da bulunan SmartArt düğümüne erişme
ISmartArtNode node = smart.getAllNodes().get_Item(0);
// Üst düğümde konum 2'de yeni alt düğüm ekleme
SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).addNodeByPosition(2);
// Metin ekle
chNode.getTextFrame().setText("Sample Text Added");
// Sunumu kaydet
pres.save("AddSmartArtNodeByPosition.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
SmartArt Düğümüne Erişme
Aşağıdaki örnek kod, SmartArt şekli içindeki düğümlere erişmenize yardımcı olacaktır. Lütfen SmartArt’ın LayoutType’ını değiştiremeyeceğinizi unutmayın; bu özellik yalnızca SmartArt şekli eklenirken ayarlanır ve salt okunurdur.
- Presentation sınıfının bir örneğini oluşturun ve SmartArt Şekli içeren sunumu yükleyin.
- İlk slaytın referansını indeksini kullanarak alın.
- İlk slayt içindeki her şekli döngüyle gezinin.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt Şekli içindeki tüm Düğümleri dolaşın.
- SmartArt Düğümünün konumu, seviyesi ve Metni gibi bilgileri erişin ve gösterin.
// Presentation sınıfını örnekle
Presentation pres = new Presentation("SmartArtShape.pptx");
try {
// İlk slaytı al
ISlide slide = pres.getSlides().get_Item(0);
// İlk slayt içindeki her şekli dolaş
for (IShape shape : slide.getShapes())
{
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (shape instanceof ISmartArt)
{
// Şekli SmartArt tipine dönüştür
ISmartArt smart = (ISmartArt) shape;
// SmartArt içindeki tüm düğümleri dolaş
for (int i = 0; i < smart.getAllNodes().size(); i++)
{
// i indeksindeki SmartArt düğümüne erişme
SmartArtNode node = (SmartArtNode) smart.getAllNodes().get_Item(i);
// SmartArt düğüm parametrelerini yazdırma
System.out.print(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
}
}
}
} finally {
if (pres != null) pres.dispose();
}
SmartArt Alt Düğümüne Erişme
Aşağıdaki örnek kod, SmartArt şeklinin ilgili düğümlerine ait alt düğümlere nasıl erişileceğini gösterir.
- Presentation sınıfının bir örneğini oluşturun ve SmartArt Şekli içeren sunumu yükleyin.
- İlk slaytın referansını indeksini kullanarak alın.
- İlk slayt içindeki her şekli döngüyle gezinin.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt Şekli içindeki tüm Düğümleri dolaşın.
- Her seçilen SmartArt şekli Düğümü için ilgili düğüm içindeki tüm Alt Düğümleri dolaşın.
- Alt Düğüm konumu, seviyesi ve Metni gibi bilgileri erişin ve gösterin.
// Presentation sınıfını örnekle
Presentation pres = new Presentation("AccessChildNodes.pptx");
try {
// İlk slaytı al
ISlide slide = pres.getSlides().get_Item(0);
// İlk slayt içindeki her şekli dolaş
for (IShape shape : slide.getShapes())
{
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (shape instanceof ISmartArt)
{
// Şekli SmartArt tipine dönüştür
ISmartArt smart = (ISmartArt) shape;
// SmartArt içindeki tüm düğümleri dolaş
for (int i = 0; i < smart.getAllNodes().size(); i++)
{
// i indeksindeki SmartArt düğümüne erişme
SmartArtNode node0 = (SmartArtNode) smart.getAllNodes().get_Item(i);
// i indeksindeki SmartArt düğümündeki alt düğümleri dolaş
for (int j = 0; j < node0.getChildNodes().size(); j++)
{
// SmartArt düğümündeki alt düğüme erişme
SmartArtNode node = (SmartArtNode) node0.getChildNodes().get_Item(j);
// SmartArt alt düğüm parametrelerini yazdırma
System.out.print("j = " + j + ", Text = " + node.getTextFrame().getText() + ", Level = " + node.getLevel() + ", Position = " + node.getPosition());
}
}
}
}
} finally {
if (pres != null) pres.dispose();
}
Belirli Bir Konumda SmartArt Alt Düğümüne Erişme
Bu örnekte, SmartArt şeklinin ilgili düğümlerine ait alt düğümlere belirli bir konumda nasıl erişileceği öğrenilecektir.
- Presentation sınıfının bir örneğini oluşturun.
- İlk slaytın referansını indeksini kullanarak alın.
- Bir StackedList türünde SmartArt şekli ekleyin.
- Eklenen SmartArt şekline erişin.
- Erişilen SmartArt şeklinin indeks 0’daki düğümüne erişin.
- get_Item() metodunu kullanarak erişilen SmartArt düğümünün konum 1’deki Alt Düğümüne erişin.
- Alt Düğüm konumu, seviyesi ve Metni gibi bilgileri erişin ve gösterin.
// Sunumu oluştur
Presentation pres = new Presentation();
try {
// İlk slayta erişme
ISlide slide = pres.getSlides().get_Item(0);
// İlk slayta SmartArt şekli ekleme
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);
// İndeks 0'da SmartArt düğümüne erişme
ISmartArtNode node = smart.getAllNodes().get_Item(0);
// Üst düğümde konum 1'deki alt düğüme erişme
int position = 1;
SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).get_Item(position);
// SmartArt alt düğüm parametrelerini yazdırma
System.out.print("Text = " + chNode.getTextFrame().getText() + ", Level = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
if (pres != null) pres.dispose();
}
SmartArt Düğümünü Kaldırma
Bu örnekte, SmartArt şekli içindeki düğümlerin nasıl kaldırılacağı öğrenilecektir.
- Presentation sınıfının bir örneğini oluşturun ve SmartArt Şekli içeren sunumu yükleyin.
- İlk slaytın referansını indeksini kullanarak alın.
- İlk slayt içindeki her şekli döngüyle gezinin.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt içinde 0’dan fazla düğüm olup olmadığını kontrol edin.
- Silinecek SmartArt düğümünü seçin.
- Seçilen düğümü RemoveNode yöntemiyle kaldırın.
- Sunumu kaydedin.
// İstenen sunumu yükle
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
// İlk slayt içindeki her şekli dolaş
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (shape instanceof ISmartArt)
{
// Şekli SmartArt tipine dönüştür
ISmartArt smart = (ISmartArt) shape;
if (smart.getAllNodes().size() > 0)
{
// İndeks 0'da SmartArt düğümüne erişme
ISmartArtNode node = smart.getAllNodes().get_Item(0);
// Seçilen düğümü kaldırma
smart.getAllNodes().removeNode(node);
}
}
}
// Sunumu kaydet
pres.save("RemoveSmartArtNode.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Belirli Bir Konumdan SmartArt Düğümünü Kaldırma
Bu örnekte, SmartArt şekli içindeki düğümlerin belirli bir konumda nasıl kaldırılacağı öğrenilecektir.
- Presentation sınıfının bir örneğini oluşturun ve SmartArt Şekli içeren sunumu yükleyin.
- İlk slaytın referansını indeksini kullanarak alın.
- İlk slayt içindeki her şekli döngüyle gezinin.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- İndeks 0’da bulunan SmartArt şekli düğümünü seçin.
- Seçilen SmartArt düğümünün 2’den fazla alt düğümü olup olmadığını kontrol edin.
- Position 1 konumundaki düğümü RemoveNode yöntemiyle kaldırın.
- Sunumu kaydedin.
// İstenen sunumu yükle
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
// İlk slayt içindeki her şekli dolaş
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (shape instanceof SmartArt)
{
// Şekli SmartArt tipine dönüştür
SmartArt smart = (SmartArt) shape;
if (smart.getAllNodes().size() > 0)
{
// İndeks 0'da SmartArt düğümüne erişme
ISmartArtNode node = smart.getAllNodes().get_Item(0);
if (node.getChildNodes().size() >= 2)
{
// Pozisyon 1'deki alt düğümü kaldırma
(node.getChildNodes()).removeNode(1);
}
}
}
}
// Sunumu kaydet
pres.save("RemoveSmartArtNodeByPosition.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
SmartArt Nesnesinde Bir Alt Düğüm İçin Özel Konum Ayarlama
Artık Aspose.Slides for Android via Java, SmartArtShape X ve Y özelliklerini ayarlamayı destekler. Aşağıdaki kod parçacığı, özel SmartArtShape konumu, boyutu ve dönüşünün nasıl ayarlanacağını gösterir; ayrıca yeni düğüm eklemenin tüm düğümlerin konum ve boyutlarının yeniden hesaplanmasına neden olduğunu lütfen unutmayın. Özel konum ayarlarıyla kullanıcı, düğümleri gereksinimlerine göre ayarlayabilir.
// Presentation sınıfını örnekle
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try{
ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(20, 20, 600, 500, SmartArtLayoutType.OrganizationChart);
// SmartArt şekline yeni konuma taşı
ISmartArtNode node = smart.getAllNodes().get_Item(1);
ISmartArtShape shape = node.getShapes().get_Item(1);
shape.setX(shape.getX() + shape.getWidth() * 2);
shape.setY(shape.getY() - shape.getHeight() * 2);
// SmartArt şeklinin genişliklerini değiştir
node = smart.getAllNodes().get_Item(2);
shape = node.getShapes().get_Item(1);
shape.setWidth(shape.getWidth() + shape.getWidth() * 2);
// SmartArt şeklinin yüksekliğini değiştir
node = smart.getAllNodes().get_Item(3);
shape = node.getShapes().get_Item(1);
shape.setHeight(shape.getHeight() + shape.getHeight() * 2);
// SmartArt şeklinin dönüşümünü değiştir
node = smart.getAllNodes().get_Item(4);
shape = node.getShapes().get_Item(1);
shape.setRotation(90);
pres.save("SmartArt.pptx", SaveFormat.Pptx);
}finally {
pres.dispose();
}
Bir Yardımcı Düğümü Kontrol Etme
İnceleme yapacağımız kaynak SmartArt şekli aşağıdaki tablodadır.
![]() |
|---|
| Şekil: Slayttaki Kaynak SmartArt şekli |
Aşağıdaki örnek kodda, SmartArt düğüm koleksiyonundaki Yardımcı Düğümleri (Assistant Nodes) tanımlama ve bunları değiştirme konuları incelenecektir.
- Presentation sınıfının bir örneğini oluşturun ve SmartArt Şekli içeren sunumu yükleyin.
- İkinci slaytın referansını indeksini kullanarak alın.
- İlk slayt içindeki her şekli döngüyle gezinin.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt şekli içindeki tüm düğümleri dolaşın ve bunların Yardımcı Düğümler olup olmadığını kontrol edin.
- Yardımcı Düğümün durumunu normal düğüm olarak değiştirin.
- Sunumu kaydedin.
// Sunum örneği oluşturma
Presentation pres = new Presentation("AddNodes.pptx");
try {
// İlk slayt içindeki her şekli dolaş
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (shape instanceof ISmartArt)
{
// Şekli SmartArt tipine dönüştür
ISmartArt smart = (SmartArt) shape;
// SmartArt şeklinin tüm düğümlerinde dolaşma
for (int i = 0; i < smart.getAllNodes().size(); i++)
{
ISmartArtNode node = smart.getAllNodes().get_Item(i);
// Düğümün Yardımcı düğüm olup olmadığını kontrol et
if (node.isAssistant())
{
// Yardımcı düğümü false yap ve normal düğüm haline getir
node.isAssistant();
}
}
}
}
// Sunumu kaydet
pres.save("ChangeAssitantNode.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
![]() |
|---|
| Şekil: Slayttaki SmartArt şeklinde Değiştirilen Yardımcı Düğümler |
Bir Düğümün Dolgu Formatını Ayarlama
Aspose.Slides for Android via Java, özel SmartArt şekilleri eklemeyi ve dolgu formatlarını ayarlamayı mümkün kılar. Bu makale, SmartArt şekillerinin nasıl oluşturulacağını, erişileceğini ve dolgu formatının nasıl ayarlanacağını Aspose.Slides for Android via Java kullanarak açıklar.
Lütfen aşağıdaki adımları izleyin:
- Presentation sınıfının bir örneğini oluşturun.
- Bir slaytın referansını indeksini kullanarak alın.
- LayoutType ayarlayarak bir SmartArt şekli ekleyin.
- SmartArt şekli düğümleri için FillFormat ayarlayın.
- Değiştirilmiş sunumu PPTX dosyası olarak yazın.
// Sunumu oluştur
Presentation pres = new Presentation();
try {
// Slayta erişme
ISlide slide = pres.getSlides().get_Item(0);
// SmartArt şekli ve düğümler ekleme
ISmartArt chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, SmartArtLayoutType.ClosedChevronProcess);
ISmartArtNode node = chevron.getAllNodes().addNode();
node.getTextFrame().setText("Some text");
// Düğüm dolgu rengini ayarlama
for (IShape item : node.getShapes())
{
item.getFillFormat().setFillType(FillType.Solid);
item.getFillFormat().getSolidFillColor().setColor(Color.RED);
}
// Sunumu kaydet
pres.save("TestSmart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Bir SmartArt Alt Düğümünün Küçük Resmini Oluşturma
Geliştiriciler, aşağıdaki adımları izleyerek bir SmartArt alt düğümünün küçük resmini oluşturabilir:
- Presentation sınıfının bir örneğini oluşturun.
- SmartArt Ekle.
- Bir düğümün referansını indeksini kullanarak alın.
- Küçük resim görüntüsünü alın.
- Küçük resim görüntüsünü istediğiniz herhangi bir görüntü formatında kaydedin.
// PPTX dosyasını temsil eden Presentation sınıfını örnekle
Presentation pres = new Presentation();
try {
// SmartArt ekle
ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicCycle);
// Düğümün referansını indeksini kullanarak al
ISmartArtNode node = smart.getNodes().get_Item(1);
// Küçük resmi al
IImage slideImage = node.getShapes().get_Item(0).getImage();
// Küçük resmi kaydet
try {
slideImage.save("SmartArt_ChildNote_Thumbnail.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
SSS
SmartArt animasyonu destekleniyor mu?
Evet. SmartArt normal bir şekil gibi ele alınır, bu nedenle standart animasyonlar (giriş, çıkış, vurgu, hareket yolları) uygulayabilir ve zamanlamayı ayarlayabilirsiniz. Gerektiğinde SmartArt düğümlerindeki şekilleri de canlandırabilirsiniz.
Bir slaytta iç ID’si bilinmeyen belirli bir SmartArt’ı nasıl güvenilir bir şekilde bulabilirim?
Alternatif metin kullanarak atama ve arama yapın. SmartArt üzerine belirgin bir AltText ayarlamak, iç tanımlayıcılara güvenmeden programatik olarak bulmanızı sağlar.
SmartArt görünümü, sunumu PDF’ye dönüştürürken korunur mu?
Evet. Aspose.Slides, PDF dışa aktarımı sırasında SmartArt’ı yüksek görsel doğrulukla işler, düzeni, renkleri ve efektleri korur.
Tüm SmartArt’ın (ön izlemeler veya raporlar için) bir görüntüsünü çıkarabilir miyim?
Evet. SmartArt şekli, raster formatlarda veya SVG olarak render edilebilir; bu, küçük resimler, raporlar veya web kullanımı için ölçeklenebilir vektör çıktısı sağlar.

