Android'de Sunum Grafikleri İçin Balon Notlarını Yönetme

Genel Bakış

Bu makale Aspose.Slides içinde grafik veri etiketleri için balon notları (callouts) ile nasıl çalışılacağını açıklar. setShowLabelAsDataCallout metodunun etiketleri balon notu olarak görüntülemek için nasıl kullanılacağını, bir halka (doughnut) grafiği için balon notu ile ilgili etiket ayarlarının nasıl yapılandırılacağını ve balon notları ile görünümlerinin sunumlar PDF, HTML5, SVG ve raster görüntü formatlarına dışa aktarıldığında korunduğunu gösterir.

Balon Notlarını Kullanma

Yeni yöntemler getShowLabelAsDataCallout() ve setShowLabelAsDataCallout() DataLabelFormat(https://reference.aspose.com/slides/tr/androidjava/com.aspose.slides/datalabelformat) sınıfına ve IDataLabelFormat(https://reference.aspose.com/slides/tr/androidjava/com.aspose.slides/idatalabelformat) arayüzüne eklenmiştir. Bu yöntemler, belirtilen grafiğin veri etiketinin veri balonu olarak mı yoksa veri etiketi olarak mı görüntüleneceğini belirler.

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Pie, 50, 50, 500, 400);
    
    chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
    chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true);
    chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false);
    
    pres.save("DisplayCharts.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Bir Halka Grafiği İçin Balon Notu Ayarlama

Aspose.Slides for Android via Java, bir Halka (Doughnut) grafiği için serinin veri etiketi balon notu şekli ayarlamayı destekler. Aşağıda örnek bir kod parçası verilmiştir.

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IChart chart = slide.getShapes().addChart(ChartType.Doughnut, 10, 10, 500, 500, false);
    IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();
    chart.setLegend(false);
    int seriesIndex = 0;
    while (seriesIndex < 15)
    {
        IChartSeries series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
        series.setExplosion(0);
        series.getParentSeriesGroup().setDoughnutHoleSize((byte)20);
        series.getParentSeriesGroup().setFirstSliceAngle(351);
        seriesIndex++;
    }
    int categoryIndex = 0;
    while (categoryIndex < 15)
    {
        chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
        int i = 0;
        while (i < chart.getChartData().getSeries().size())
        {
            IChartSeries iCS = chart.getChartData().getSeries().get_Item(i);
            IChartDataPoint dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
            dataPoint.getFormat().getFill().setFillType(FillType.Solid);
            dataPoint.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
            dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.awt.Color.WHITE);
            dataPoint.getFormat().getLine().setWidth(1);
            dataPoint.getFormat().getLine().setStyle(LineStyle.Single);
            dataPoint.getFormat().getLine().setDashStyle(LineDashStyle.Solid);
            if (i == chart.getChartData().getSeries().size() - 1)
            {
                IDataLabel lbl = dataPoint.getLabel();
                lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
                lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(NullableBool.True);
                lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new FontData("DINPro-Bold"));
                lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
                lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
                lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.awt.Color.LIGHT_GRAY);
                lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.awt.Color.WHITE);
                lbl.getDataLabelFormat().setShowValue(false);
                lbl.getDataLabelFormat().setShowCategoryName(true);
                lbl.getDataLabelFormat().setShowSeriesName(false);
                lbl.getDataLabelFormat().setShowLeaderLines(true);
                lbl.getDataLabelFormat().setShowLabelAsDataCallout(false);
                chart.validateChartLayout();
                lbl.setX((float) lbl.getX()+ (float)0.5);
                lbl.setY((float)lbl.getY()+ (float)0.5);
            }
            i++;
        }
        categoryIndex++;
    }
    pres.save("chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

SSS

Bir sunumu PDF, HTML5, SVG veya görüntülere dönüştürürken balon notları korunur mu?

Evet. Balon notları grafik oluşturmanın bir parçasıdır; bu nedenle PDF, HTML5, SVG veya raster görüntüler olarak dışa aktardığınızda, slayt biçimlendirmesiyle birlikte korunurlar.

Özel yazı tipleri balon notlarında çalışır mı ve dışa aktarma sırasında görünümleri korunur mu?

Evet. Aspose.Slides, sunuma yazı tipi eklemeyi destekler ve PDF gibi dışa aktarmalar sırasında yazı tipi eklemeyi kontrol eder, böylece balon notları farklı sistemlerde aynı şekilde görüntülenir.