私はMPAndroidChartを使っています。すべてをプロットしても問題ありません。私が必要とするのは、SeekBarをチャートの下に置き、SeekBarを動かすことによって異なるポイントを強調表示できるようにすることです。SeekbarをMPAndroidChartのX値に従います
問題は、X値のステップが規則的でなく、線形でないことです(例:[0,19,25,30,33,47,...]
)。 SeekBarの最大値にポイント数を設定しようとしましたが、ハイライトはSeekBarの位置とほとんど一致しません(画像参照)。
シークバーの位置にMPAndroidChartのハイライトを整列する方法はありますか?
EDIT:は、最も近いx値のためのナイーブ検索方法を含んでいました。これは最善のアプローチではありませんが、それは私にはうまくいきます。
private int getNearestXValue(int progress) {
Log.d("PROGRESS", Integer.toString(progress));
int nearestValue = 0;
int minimumDistance = Integer.MAX_VALUE;
int position = 0;
for (Entry entry : mData) {
if (Math.abs((int) entry.getX() - progress) < minimumDistance){
minimumDistance = Math.abs((int) entry.getX() - progress);
nearestValue = position;
position++;
}
}
return nearestValue;
}
をonProgressChanged意志x値が線形であればチャートとシークバー一致?もしそうなら、シーカーの進捗状況にx値の代わりにxの索引付けされた位置を使用するのはなぜですか? MPAndroidChartに線を描こうとしているときにx値を取得するためにルックアップを行います。 –
@AngelKoh x値が線形ステップに従うなら、SeekBarが値に従うのを助ける関数を作ることができました。私はあなたの提案を理解していない、x値のステップはかなりランダムなので。 – Minoru