2012-02-22 3 views
1

私は、時間の経過とともに減少し、食料品の在庫レベルを表示する棒グラフを作成しようとしています。アンドロイドGraphViewバーグラフハイツ

( "素晴らしい"、 "良い"、 "OK"、および "悪い")と4値:

I used the sample code from here:

Iは、Y軸上の4つの値に対応するためにわずかにGraphViewDemoでコードを変更しましたX軸

(「今日」、「明日」、「2日」、「3日」)

と在庫レベルが時間の経過と共に減少する方法を表示したいの。ここでは悪いから偉大に増加バーを表示する必要があるコードは次のとおりです。

float[] values = new float[] { 1.0f,1.5f, 2.0f, 2.5f }; 
    String[] verlabels = new String[] { "great", "good", "ok", "bad"}; 
    String[] horlabels = new String[] { "today", "tomorrow", "2 days", "3 days" }; 
    GraphView graphView = new GraphView(this, values, "Stock Levels",horlabels, verlabels, GraphView.BAR); 
    setContentView(graphView); 

これは数字の1.0F、1.5F、2.0f、2.5Fで結構です。問題は、最初の浮動小数点を2.0(最初の小節が「良い」の高さに変更されることを期待する)と変更すると、すべての小節が変更されます。

この場合、ビューは「OK」と「良い」及び「悪い」の高さである第2バーとの間にある第一及び第三のバーの高さに変化します。

ライン94近くGraphViewクラスの画素変換とは何かかもしれないが、コードは非常によくコメントしていないと私はそれが難しいすべてを理解するために見つけています。

答えて

0

問題がGraphViewクラスでは、この行でように見えた:

canvas.drawRect((i * colwidth) + horstart, (border - h) + graphheight, ((i * colwidth) + horstart) + (colwidth - 1), height - (border - 1), paint); 

だから私が見つけたバーがチャート上に置くことができ4つの高さの値(「偉大」、「良いです」、「 ok "、" bad ")、変数を設定するswitch文を作成しました。スイッチは1.0,1.5,2.0,2.5の値を取り、対応するバーの高さに関連付けます。

Iは、変数との高さの代わりに、以下の計算「 - + graphheight(H境界)」を置き換えます。この方法では、バーは4つの高さしか設定できませんでした。

関連する問題