(これは別のアプリのスクリーンショットです)
http://www.jjoe64.com/p/graphview-library.htmlを使用してこれを達成しようとしています
ユーザーがグラフに触れたときに十字線を表示し、その点の X 軸の値を表示したいと考えています。
(これは別のアプリのスクリーンショットです)
http://www.jjoe64.com/p/graphview-library.htmlを使用してこれを達成しようとしています
ユーザーがグラフに触れたときに十字線を表示し、その点の X 軸の値を表示したいと考えています。
画面上の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 軸上で何に対応するかを推測しようとしない限り、ルックアップを実行するには生のデータ ポイントが必要です...