【问题标题】:MPAndroidChart homescreen widgetMPAndroidChart 主屏幕小部件
【发布时间】:2014-10-31 17:36:23
【问题描述】:

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

//我尝试使用getChartbitmap(),但是 1)位图在调用invalidate()后并没有立即创建,所以返回null 2)我看不到方法,如何在不放置资源的情况下初始化图表类 - 我做不到 用于小部件。

有人有成功的例子吗?

【问题讨论】:

    标签: android mpandroidchart


    【解决方案1】:

    试试这个代码

    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();
    

    【讨论】:

    • 谢谢!测量很重要!
    【解决方案2】:

    图表需要几毫秒才能将内容绘制到Bitmap。这就是为什么在invalidate() 之后立即调用getChartBitmap() 不会返回有效的Bitmap 的原因。

    尝试使用Handler 并在检索Bitmap 之前延迟100 毫秒。

    【讨论】:

    • 谢谢,它有效。要最终确定我的问题的答案,我仍然需要更多帮助:/ .objective 是拥有主屏幕小部件。因此我不能使用主要活动来初始化。所以当我打电话时,即 mChart = new LineChart(context); setData(45, 100); (这是您示例中的函数..)在调用getChartBitmap后,我仍然收到错误“java.lang.IllegalArgumentException:宽度和高度必须> 0”有什么想法吗?我正在尝试使用 inflanter、布局,但到目前为止没有任何效果
    • 你有没有得到任何答案,因为我也得到了同样的错误,宽度高度应该大于零
    【解决方案3】:

    在带有图表的 Activity 中,函数 getChartBitmap() 工作正常!它返回位图没有任何错误。恕我直言,这就是问题所在,在小部件中我们没有活动,将创建的图表放置在布局中不会生效:(所以,我们根本无法拥有带有此图表的小部件,这非常可悲 - 这张图表真的很酷。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多