2014-10-31 97 views
3

是否有任何示例,如何将MPAndroidChart library中的任何图表放置到主屏幕小部件?MPAndroidChart主屏幕小部件

//我试图用getChartbitmap(),但 1)位没有调用无效()后创建的,所以它返回null 2)我不看路了,如何初始化图表类,而不将资源 - 这我不能为小部件做 。

有人有一些成功的例子吗?

回答

1

该图表需要一些毫秒将内容绘制到Bitmap上。这就是为什么在invalidate()之后拨打getChartBitmap()不会返回有效的Bitmap的原因。

尝试使用Handler并延迟检索Bitmap大约100ms之前的时间。

+1

谢谢你,它的工作要完成的回答我的问题我还需要更多的帮助:/。目的是让主屏幕小部件。因此我不能使用的主要活动inicialize。 。所以当我打电话,即mChart =新的LineChart(上下文); setData(45,100);(这是你的例子函数..)和调用getChartBitmap后,我仍然得到错误“java.lang.IllegalArgumentException:width和高度必须> 0“任何想法?我正在尝试使用inf lanter,布局,但没有工作到目前为止 – 2014-11-02 18:06:18

+0

你有没有得到任何答案,因为我也得到同样的错误,宽度高度应该大于零 – 2016-04-04 12:25:27

-1

在活动图表中,函数getChartBitmap()工作正常!这是返回位图没有任何错误。恕我直言,这是问题,在小部件,我们没有一个活动,放置创建的图表布局不生效:(所以,我们不能有一个小部件与这个图表根本就是,这是非常伤心 - 这张图表如此真实酷

3

试试这个代码

BarData chartData =... 
BarChart chart = new BarChart(mContext); 
chart.setData(chartData); 

chart.measure(View.MeasureSpec.makeMeasureSpec(300,View.MeasureSpec.EXACTLY), 
       View.MeasureSpec.makeMeasureSpec(500,View.MeasureSpec.EXACTLY)); 
chart.layout(0, 0, chart.getMeasuredWidth(), chart.getMeasuredHeight()); 

Bitmap chartBitmap = chart.getChartBitmap(); 
+0

谢谢!测量很重要! – 2017-03-10 13:05:17