gpt4 book ai didi

android - 如何从 android mpchart 库中删除缩放功能?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:04 26 4
gpt4 key购买 nike

我想从条形图项目中删除缩放。 MpChart BarItem chart before scroll MpChart BarItem chart after scroll

当用户滚动条形图项目时,y 图例值会覆盖 x 图例值或 y 图例值显示在 X 轴下方。

这里是条形图项目的代码:

  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;
}

最佳答案

我添加了以下行:

holder.chart.setTouchEnabled(false);

并删除了缩放功能以及与图表的所有可能的触摸交互。参见 reference .

关于android - 如何从 android mpchart 库中删除缩放功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32077566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com