【发布时间】:2014-10-31 17:36:23
【问题描述】:
有没有例子,如何将MPAndroidChart library中的任何图表放置到主屏幕小部件?
//我尝试使用getChartbitmap(),但是 1)位图在调用invalidate()后并没有立即创建,所以返回null 2)我看不到方法,如何在不放置资源的情况下初始化图表类 - 我做不到 用于小部件。
有人有成功的例子吗?
【问题讨论】:
有没有例子,如何将MPAndroidChart library中的任何图表放置到主屏幕小部件?
//我尝试使用getChartbitmap(),但是 1)位图在调用invalidate()后并没有立即创建,所以返回null 2)我看不到方法,如何在不放置资源的情况下初始化图表类 - 我做不到 用于小部件。
有人有成功的例子吗?
【问题讨论】:
试试这个代码
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();
【讨论】:
图表需要几毫秒才能将内容绘制到Bitmap。这就是为什么在invalidate() 之后立即调用getChartBitmap() 不会返回有效的Bitmap 的原因。
尝试使用Handler 并在检索Bitmap 之前延迟100 毫秒。
【讨论】:
在带有图表的 Activity 中,函数 getChartBitmap() 工作正常!它返回位图没有任何错误。恕我直言,这就是问题所在,在小部件中我们没有活动,将创建的图表放置在布局中不会生效:(所以,我们根本无法拥有带有此图表的小部件,这非常可悲 - 这张图表真的很酷。
【讨论】: