android - GraphView 大小不正确

标签 android android-studio android-layout kotlin android-graphview

我正在使用 Graph View在我正在开发的应用程序中绘制我的条形图,并且在纵向模式下一切正常。但是,当更改为横向时,图表的标签与数据点不一致,如下图所示:

肖像:

enter image description here

横向:

enter image description here

如您所见,标签与条形图未对齐,这是我的代码:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {

    val view = inflater.inflate(R.layout.fragment_chart, container, false)
    val graph = view?.findViewById(R.id.graph) as GraphView

    val staticLabelsFormatter = StaticLabelsFormatter(graph)
    staticLabelsFormatter.setHorizontalLabels(arrayOf("Basics", "Loops", "Functions"))
    graph.getGridLabelRenderer().setLabelFormatter(staticLabelsFormatter)
    graph.gridLabelRenderer.verticalLabelsColor = Color.WHITE
    graph.gridLabelRenderer.horizontalLabelsColor = Color.WHITE
    graph.gridLabelRenderer.gridStyle = GridLabelRenderer.GridStyle.NONE
    graph.gridLabelRenderer.isVerticalLabelsVisible = false

    graph.viewport.setMinX(0.0)
    graph.viewport.setMinY(0.0)
    graph.viewport.setMaxX(2.0)
    graph.viewport.setMaxY(6.0)
    graph.viewport.isXAxisBoundsManual = true
    graph.viewport.isYAxisBoundsManual = true

    val basics = arguments!!.getDouble("basics")
    val loops = arguments!!.getDouble("loops")
    val functions  = arguments!!.getDouble("functions")

    val series = BarGraphSeries(arrayOf(
            DataPoint(0.37, basics)
    ))
    val series2 = BarGraphSeries(arrayOf(
            DataPoint(1.0, loops)
    ))
    val series3 = BarGraphSeries(arrayOf(
            DataPoint(1.6, functions)
    ))

    series.setColor(Color.GREEN)
    series2.setColor(Color.CYAN)
    series3.setColor(Color.MAGENTA)

    series.setAnimated(true)
    series2.setAnimated(true)
    series3.setAnimated(true)

    series.setDrawValuesOnTop(true)
    series2.setDrawValuesOnTop(true)
    series3.setDrawValuesOnTop(true)

    series.setValuesOnTopColor(Color.WHITE)
    series2.setValuesOnTopColor(Color.WHITE)
    series3.setValuesOnTopColor(Color.WHITE)

    graph.addSeries(series)
    graph.addSeries(series2)
    graph.addSeries(series3)

    return view
}

有没有办法将 y 值而不是 x 数据点分配给标签?这个问题现在正在发生,因为我被迫将 y 值固定为 x 值。懒惰地,这将是标签。或者有没有办法将标签固定到某个 x 值?

最佳答案

 Try To use This code

   private LineChart mChart;

   mChart.setDragEnabled(true);
   mChart.setScaleEnabled(true);
   mChart.setPinchZoom(true);

   LineDataSet set1 = new LineDataSet(x, "");
   set1.setColor(Color.rgb(0, 82, 159));
   set1.setLineWidth(1.5f);
   set1.setCircleRadius(4f);
   LineData data1 = new LineData(y, set1);
   mChart.setData(data1);
   mChart.invalidate();

关于android - GraphView 大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53148486/

相关文章:

java - 安卓 : Design shown in XML not reflected in the UI

java - Android:将图像保存到存储器

java - ProGuard:库类的重复定义?

java - 启动 Intent 应用程序崩溃

android-studio - 错误 : In <declare-styleable> FontFamilyFont, 无法找到属性 android:fontVariationSettings

android - 渐变不适用于 kitkat 设备 android

android - 渲染问题无法在当前主题中找到样式 'bottomNavigationStyle'

java - android, Canvas 撤消最后一笔

animation - Android - 像开门一样的图像旋转

android - 适用于 Android 中的智能手机和平板电脑的完美启动画面尺寸