如何提高实时图形的电池消耗?

时间:2016-01-04 14:12:30

标签: android plot battery

我正在建立一个Android应用程序,它在线图上绘制一个信号,用于实时数据输出,显示过去10秒。在onDraw()中调用drawSeries()并将所有系列绘制到画布。有什么方法可以改善电池续航时间,因此不必绘制每个重绘的数据点吗?

private void drawSeries(Canvas canvas) {
    float x1Plot = getPxForDP(30);
    float y1Plot = getPxForDP(9);
    float x2Plot = getWidth() - getPxForDP(5);
    float y2Plot = getHeight() - getPxForDP(24);

    long now = System.currentTimeMillis();
    float dx = x2Plot - x1Plot;
    float dy = y2Plot - y1Plot;

    for (GraphSeries gs : series) {
        GraphPoint gpPrev = null;
        if (gs.dataList.size() > 0) {
            for (int i = gs.dataList.size() - 1; i > -1; i--) {
                GraphPoint gp = gs.dataList.get(i);
                if (gpPrev != null) {
                    if ((gpPrev.timestamp - now) / 1000 >= xMin) {
                        float x1 = x2Plot + (gpPrev.timestamp - now) / 1000F / (xMax - xMin) * dx;
                        float x2 = x2Plot + (gp.timestamp - now) / 1000F / (xMax - xMin) * dx;
                        float y1 = Math.min(Math.max(yMax - gpPrev.value, yMin), yMax) / (yMax - yMin) * dy + y1Plot;
                        float y2 = Math.min(Math.max(yMax - gp.value, yMin), yMax) / (yMax - yMin) * dy + y1Plot;
                        canvas.drawLine(x1, y1, x2, y2, gs.paint);
                    }
                }
                gpPrev = gp;
            }
        }
    }
}

我正在考虑缓存线条的位图并对其进行翻译,但我真的不知道该去哪里。

谢谢你的时间!

0 个答案:

没有答案