-4

PIC

(これは別のアプリのスクリーンショットです)

http://www.jjoe64.com/p/graphview-library.htmlを使用してこれを達成しようとしています

ユーザーがグラフに触れたときに十字線を表示し、その点の X 軸の値を表示したいと考えています。

4

1 に答える 1

3

画面上のX 位置をグラフ上の X位置に変換し、グラフ内で調べた X 位置に対応する Y 値を表示するメソッドが必要になります。

私が考えることができる最も単純な方法は、画面のピクセル幅を取得し (グラフが幅全体に収まると仮定して)、以下のビューでこのメソッドをオーバーライドしてタッチ イベントに登録することです。

@Override
public boolean onTouchEvent(MotionEvent event)
{
 //TODO get x position tapped on the view and translate to x position on graph
}

そのメソッド内で、(MotionEvent オブジェクトから) タップされた x 座標を取得し、グラフの位置に変換できます。

たとえば、画面に沿って何パーセントがタップされているかを計算し (画面の幅が 400 ピクセルで、ユーザーが 300 ピクセルをタップすると、長さの 75% になります)、このパーセントをグラフのデータ ポイント間で移動します (したがって 75 % 順序付けられたデータセットを介して)

次に、ポップアップを表示するかonDraw、データ ポイントを小さなオーバーレイとして追加するメソッドに何かを追加できます。

注: グラフのポイントが y 軸上で何に対応するかを推測しようとしない限り、ルックアップを実行するには生のデータ ポイントが必要です...

于 2013-01-02T16:58:25.163 に答える