`
sheva.wen
  • 浏览: 38796 次
  • 性别: Icon_minigender_1
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

Linechart使用中的细节(3)

    博客分类:
  • Flex
阅读更多

3、关于自定义ItemRenderer

个人觉得即使Flex不开源,现有的功能就很大程度的能够满足自定义的需求。对于通过数据绑定实现的控件(List,DataGrid,Chart),每一行数据的呈现都可以自定义——自定义样式,自定义行为。对于LineChart中,默认的状况是用圆点描述每个数据,然后连起来,鼠标经过圆点时显示点上横纵座标的值。自定义的需求就有许多,比如不需要鼠标经过就显示点上的值,比如使用其它形状的点标示数据,比如用不同的颜色标示每个点,等等,其实都是一些定义ItemRenderer样式的问题。

举个例子:比如实现默认在点上标记某个数据,不需要鼠标经过,这个可以通过将ItemRenderer设置成一个Label来实现。这个Label首先要继承UIComponent,如果要实现显示该点上的数据的话就要实现 IDataRenderer 来获取。它的表现样式是通过重写updateDisplayList方法实现的。

as 代码
  1. import mx.charts.ChartItem;   
  2. import mx.core.IDataRenderer;   
  3. import mx.controls.Label;   
  4. import mx.core.UIComponent;   
  5. import mx.charts.series.LineSeries;   
  6. import mx.charts.series.items.LineSeriesItem;   
  7. import flash.display.Graphics;   
  8. import flash.geom.Rectangle;   
  9. import mx.charts.chartClasses.GraphicsUtilities;   
  10. import mx.core.IDataRenderer;   
  11. import mx.graphics.IFill;   
  12. import mx.graphics.IStroke;   
  13. import mx.skins.ProgrammaticSkin;   
  14. import mx.controls.Label;   
  15. import mx.core.UIComponent;   
  16.   
  17. public class MyLabel extends UIComponent implements IDataRenderer   
  18. {   
  19.     private var _label:Label;   
  20.        
  21.     public function MyLabel():void  
  22.     {   
  23.         super();   
  24.         _label = new Label();   
  25.         addChild(_label);   
  26.         _label.setStyle("color",0x999999);   
  27.         _label.setStyle("paddingTop",4);        
  28.     }   
  29.     private var _chartItem:ChartItem;   
  30.   
  31.     public function get data():Object   
  32.     {   
  33.         return _chartItem;   
  34.     }   
  35.   
  36.     public function set data(value:Object):void  
  37.     {   
  38.         if (_chartItem == value)   
  39.             return;   
  40.         _chartItem = ChartItem(value);   
  41.   
  42.         if(_chartItem != null)   
  43.             _label.text = LineSeriesItem(_chartItem).yValue.toString();   
  44.     }   
  45.      
  46.     override protected function updateDisplayList(unscaledWidth:Number,   
  47.                                                   unscaledHeight:Number):void  
  48.     {   
  49.         super.updateDisplayList(unscaledWidth, unscaledHeight);   
  50.                    
  51.         _label.setActualSize(_label.getExplicitOrMeasuredWidth(),_label.getExplicitOrMeasuredHeight());   
  52.     }   
  53.   
  54. }  

当然也可以将ItemRenderer设置成其它空间,在Chart中常用的会是CircleItemRenderer(圆点)等等。对不同的点的现实不同效果可以通过将逻辑写到自定义的ItemRenderer里实现。

 

 

分享到:
评论

相关推荐

    linechart.rar

    在本项目中,"linechart.rar" 是一个包含Vue.js应用程序的压缩文件,主要用于演示如何使用canvas元素动态绘制折线图。Vue.js是一个流行的前端框架,它提供了组件化开发、数据绑定和响应式更新等功能,使得构建用户...

    LineChart C#划曲线图

    这个控件是.NET Framework的一部分,位于System.Windows.Forms命名空间下,它提供了丰富的图表类型,包括线性图(LineChart)、柱状图(Histogram)和饼图(PieChart)。通过灵活地配置和设置各种属性,我们可以定制...

    android 绘制折线图(AChartEngine)Linechart 动态更新横轴为获取的当前时间

    在这个场景中,我们将探讨如何使用`AChartEngine`库来绘制一个动态更新横轴为当前时间的折线图,即`LineChart`。 首先,我们需要了解`AChartEngine`的基础概念。`AChartEngine`提供了一系列的类和方法,使得开发者...

    MpAdnroidChart:LineChart演示

    首先,需要在布局文件中添加一个`View`来承载`LineChart`,然后在Java代码中找到这个`View`并将其转换为`LineChart`对象: ```java LineChart lineChart = findViewById(R.id.line_chart); ``` 3. **数据准备**...

    Ireport line chart 如何只顯示最後一筆資料的LABEL1

    在完成自定义的CategoryItemLabelGenerator后,我们需要将其设置到LineChart的`categoryItemLabelGenerator`属性上。这通常可以通过IReport的GUI界面完成,或者在JRXML文件中进行配置。 最后,我们还可以使用...

    MPChart安卓中文文档157副本3.zip

    1. **图表类型丰富**:支持折线图(LineChart)、柱状图(BarChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart)等多种图表类型,满足多种数据可视化需求。 2. **自定义程度高**:开发者...

    open-flash-chart中文使用参数对照表

    ### Open Flash Chart 中文使用参数对照表详解 #### 一、概述 Open Flash Chart(简称 OFC)是一款基于 Flash 的图表绘制工具,以其强大的图表功能和简易的操作方式,在 Web 应用开发中得到了广泛的应用。它支持...

    Android studio实现折线图

    在对应的Activity或Fragment中,找到图表容器并初始化`LineChart`对象: ```java LineChart lineChart = findViewById(R.id.line_chart_container); lineChart.setDrawGridBackground(false); // 可选:隐藏网格...

    少儿编程Scratch第23讲: 数据可视化:线图V1.0- 列表、图章、画笔、滑行(Line Chart).pdf

    【少儿编程Scratch第23讲】主要讲解的是如何利用Scratch进行数据可视化,特别是创建线图(Line Chart)的方法。线图是一种常见的数据展示方式,尤其适合展示数据随时间的变化趋势。在这个教程中,作者选择了北京12...

    android chart MPchart

    1. 多种图表类型:MPChart提供了多种图表类型,包括LineChart(折线图)、BarChart(柱状图)、PieChart(饼图)、ScatterChart(散点图)、RadarChart(雷达图)等,满足不同数据展示需求。 2. 数据绑定:MPChart...

    Android MPAndroidChart不同区域背景颜色不同,点的颜色不同

    LineChart chart = findViewById(R.id.chart); chart.getAxisLeft().setDrawGridLines(false); chart.getXAxis().setDrawGridLines(false); chart.setDrawGridBackground(false); chart.setNoDataText("无数据"); /...

    Winfrom Chart 实时数据、滚动、缩放

    在Windows Forms应用开发中,`Chart`控件是一种强大的可视化工具,用于展示各种类型的数据,如柱状图、折线图、饼图等。本文将深入探讨如何利用`Winform Chart`实现实时数据的更新、图表的滚动以及缩放功能。 ### 1...

    动态曲线图.zip

    3. 初始化和配置`LineChart` 4. 创建和设置数据集 5. 实现数据的动态更新 6. 自定义样式和交互 通过对这个压缩包内的项目进行解压和分析,你可以深入理解这些步骤,并进一步提升你的Android数据可视化技能。

    Amazing WPF chart

    3. **交互性**:"Amazing WPF Chart" 支持用户与图表的交互,如点击图表元素获取详细信息、缩放和平移查看细节、通过拖动调整数据点等。 4. **实时数据更新**:对于需要实时展示变化数据的应用,该控件支持动态更新...

    HelloCharts for android

    要在项目中使用HelloCharts,首先需要将库文件添加到项目中。在Android Studio中,可以通过Gradle依赖方式引入。在项目的build.gradle文件中添加以下代码: ```groovy dependencies { implementation '...

    iPhone Chart XCode Project and Source Code

    5. **线图(Line Chart)**:线图用于显示数据的变化趋势,常用于时间序列数据。实现线图可能涉及到描点、连接点、平滑曲线等技术,需要对坐标系统有深入理解。 6. **柱状图(Bar Chart)**:柱状图用于比较不同...

    C#chart图表源码

    在C#项目中使用Chart控件,首先需要通过NuGet包管理器安装`System.Windows.Forms.DataVisualization`库。然后在程序中添加对`using System.Windows.Forms.DataVisualization.Charting;`命名空间的引用。 3. **创建...

    chart报表示例

    在描述的“chart报表实例”中,我们可以推测这可能是一个使用编程语言(如C#或VB.NET)结合Microsoft Chart Controls(MSchart)创建的项目。Microsoft Chart Controls是.NET Framework的一部分,它为Windows Forms...

    Android 可拖动的折线图

    在Android-LineChart-master这个项目中,你可能会找到具体的实现示例和更多细节,包括如何处理数据源、绘制自定义视图以及优化性能等方面。通过研究源代码,你可以更好地理解和掌握Android折线图的动态交互实现。

    MPandroidChart简单实用的demo

    例如,如果我们要创建一个线图,我们可以使用LineChart。以下是如何创建一个基本线图的步骤: 1. **初始化Chart对象**: 在XML布局文件中添加一个View,并在代码中找到它,然后将其转换为LineChart。 ```xml ...

Global site tag (gtag.js) - Google Analytics