How to remove the zoom function in android mpchart library?

I want to remove the scale from the barchart element. MpChart BarItem chart before scroll MpChart BarItem chart after scrolling

When a user views a histogram element, the legend y value overrides the legend x values ​​or the legend y values ​​are displayed below the X axis.

Here is the code for the histogram element:

import ro.charttest.R; import android.content.Context; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import com.github.mikephil.charting.charts.BarChart; import com.github.mikephil.charting.data.ChartData; import com.github.mikephil.charting.utils.ColorTemplate; import com.github.mikephil.charting.utils.Legend; import com.github.mikephil.charting.utils.XLabels; import com.github.mikephil.charting.utils.Legend.LegendPosition; import com.github.mikephil.charting.utils.XLabels.XLabelPosition; import com.github.mikephil.charting.utils.YLabels; import com.github.mikephil.charting.utils.YLabels.YLabelPosition; public class BarChartItem extends ChartItem { private ColorTemplate mCt; private Typeface mTf; public BarChartItem(ChartData cd, Context c) { super(cd); mCt = new ColorTemplate(); mCt.addDataSetColors(new int[]{ R.color.colorful_1}, c); mCt.addDataSetColors(new int[]{ R.color.greens_2}, c); mTf = Typeface.createFromAsset(c.getAssets(), "tahoma.ttf"); } @Override public int getItemType() { return TYPE_BARCHART; } @Override public View getView(int position, View convertView, Context c) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(c).inflate( R.layout.list_item_barchart, null); holder.chart = (BarChart) convertView.findViewById(R.id.chart); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } // apply styling // holder.chart.setYLabelCount(10); holder.chart.setColorTemplate(mCt); holder.chart.setBarSpace(30); holder.chart.setStartAtZero(false); holder.chart.setScrollContainer(false); holder.chart.setYLabelTypeface(mTf); holder.chart.setXLabelTypeface(mTf); holder.chart.setValueTypeface(mTf); holder.chart.setDescription(""); holder.chart.setDrawVerticalGrid(false); holder.chart.setDrawYLabels(true); holder.chart.setDrawYValues(true); holder.chart.setDrawGridBackground(false); holder.chart.setMaxVisibleValueCount(10); // sets the number of digits for values inside the chart holder.chart.setValueDigits(0); // disable 3D holder.chart.set3DEnabled(false); // holder.chart.setYLabelCount(10); holder.chart.setAutoFinish(true); // scaling can now only be done on x- and y-axis separately holder.chart.setPinchZoom(true); XLabels xl = holder.chart.getXLabels(); xl.setCenterXLabelText(true); xl.setPosition(XLabelPosition.BOTTOM); // set data holder.chart.setData(mChartData); // do not forget to refresh the chart holder.chart.invalidate(); holder.chart.cancelLongPress(); holder.chart.setYRange(0, 1.5f*holder.chart.getYMax(), false); YLabels yLabels = holder.chart.getYLabels(); yLabels.mDecimals = 0; yLabels.setPosition(YLabelPosition.LEFT); XLabels xLabels = holder.chart.getXLabels(); xLabels.setPosition(XLabelPosition.BOTTOM); Legend l = holder.chart.getLegend(); l.setPosition(LegendPosition.BELOW_CHART_LEFT); l.setOffsetBottom(50f); l.setTypeface(mTf); return convertView; } private static class ViewHolder { BarChart chart; } 

}

+6
source share
4 answers

I added the following line:

 holder.chart.setTouchEnabled(false); 

and the zoom function has been removed, as well as all possible sensory interactions with the chart. See link .

+7
source

Try it:

  chart.setTouchEnabled(false); chart.setPinchZoom(false); chart.setDoubleTapToZoomEnabled(false); 
+2
source

use this to turn off scaling along the x direction

  chart.setVisibleXRangeMaximum(10); chart.setVisibleXRangeMinimum(10); 

you can do similar for y direction using

setVisibleYRangeMaximum Function

here link link https://github.com/PhilJay/MPAndroidChart/wiki/Modifying-the-Viewport

0
source

Disable all scaling in the chart.

 chart.setScaleEnabled(false); 
0
source

All Articles