3

AndroidPlot を使用してホームスクリーン ウィジェットにグラフを描画しようとしています。通常のアプリではカスタムビューを使用していることを知ってますimageView.

AndroidPlot のクイックスタート コードを取得してプロバイダー クラスに配置しましたが、ホーム画面にドロップしても何もレンダリングされないようです。

このコードと元のクイックスタート コードの違いは、クイックスタートでは を活用してActivity.findViewByIdいますが、明らかにここでは使用できないことです。

空のレンダリングを引き起こしている可能性のある私が間違っていることを誰かがここで見ることができますか? あなたが提供できる助けに感謝します!

private Bitmap getChartImage(Context context)
{

    // initialize our XYPlot reference:
    mySimpleXYPlot = new XYPlot(context, "My Simple XYPlot");

    mySimpleXYPlot.setDrawingCacheEnabled(true);

    // add a new series
    mySimpleXYPlot.addSeries(new SimpleXYSeries(), LineAndPointRenderer.class, new LineAndPointFormatter(Color.rgb(0, 200, 0), Color.rgb(200, 0, 0)));

    // reduce the number of range labels
    mySimpleXYPlot.getGraphWidget().setRangeTicksPerLabel(4);

    // reposition the domain label to look a little cleaner:
    Widget domainLabelWidget = mySimpleXYPlot.getDomainLabelWidget();

    mySimpleXYPlot.position(domainLabelWidget,                     // the widget to position
                            45,                                    // x position value, in this case 45 pixels
                            XLayoutStyle.ABSOLUTE_FROM_LEFT,       // how the x position value is applied, in this case from the left
                            0,                                     // y position value
                            YLayoutStyle.ABSOLUTE_FROM_BOTTOM,     // how the y position is applied, in this case from the bottom
                            AnchorPosition.LEFT_BOTTOM);           // point to use as the origin of the widget being positioned

    // get rid of the visual aids for positioning:
    mySimpleXYPlot.disableAllMarkup();

    //mySimpleXYPlot.measure(150, 150);
    //mySimpleXYPlot.layout(0, 0, 150, 150);


    Bitmap bmp = mySimpleXYPlot.getDrawingCache();

    return bmp;
}
4

1 に答える 1

1

ビットマップが実際に空であるかどうかを確認しましたか? 私の推測では、ビットマップは問題なく、問題はこのコードのチャンクの外に存在します。AndroidPlot を使用したウィジェットの使用例を見てみましょう。これは非常に最小限であり、確実に機能します。うまくいけば、そこに解決策があります:)

ニック

于 2013-06-16T16:33:58.367 に答える