通过Seekbar的MP Android图表X轴缩放

时间:2018-10-17 19:36:32

标签: java android mpandroidchart seekbar

在MP android图表中,有一个很酷的功能,称为“ Scale X”,可通过两个手指捏合手势来扩展或收缩标准条形图中的条形和x轴以及X轴。

我要做的是创建一个可以通过SeekBar(滑块控件)理想地调整图表比例的函数,但是它的问题是图表(图形方面),在收缩时并不总是无效当达到1.0f(图表的初始X刻度值)时,这些柱形大部分。

我想要此功能的主要原因是为了帮助没有手指缩放手势设备或喜欢使用某种鼠标的用户(这些设备的示例是微型USB,可连接键盘的USB集线器,蓝牙鼠标或运行android的计算机(例如Google像素书)。

最后,您可以轻松地将此代码插入下面,并从github上的MPAndroid图表中将这些简单的更改放入“ BarChartActivity.java”中

  • 我删除了xml seekbar的“ android:max =“ 200”“
  • mSeekBarX.setMax(50);
  • 设置mChart.setScaleXEnabled(true);
  • float floatVal是初始值为0.0f的全局变量;

我对onProgressChanged()的实现:

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

    try {
        if(progress != 0){
            floatVal = 1.0f + progress * 0.1f;
            //floatVal = Math.round(floatVal);
            System.out.println("Progress #3: val " + floatVal);
            mChart.setScaleX(floatVal);
            System.out.println("Mchart Scale X value: " + mChart.getScaleX());

            //mChart.invalidate();

        }
        else{
            mChart.setScaleX(1.0f);
            mChart.invalidate();
        }

        System.out.println("Progress " + progress);
        System.out.println("Seekbar progress " + mSeekBarX.getProgress());


    }
    catch (Exception e){
        e.printStackTrace();
    }
}

0 个答案:

没有答案