gpt4 book ai didi

android - 如何在相同的 x,y 值上管理多个标记 View

转载 作者:行者123 更新时间:2023-12-03 14:54:43 25 4
gpt4 key购买 nike

我用了MPChart android 库在我的项目中,它满足了我的要求,但现在在我的项目中的新增强功能中,我遇到了一些问题。

  • 如何使用带有方向箭头的markerview(意味着如果左侧没有空间,那么markerview应该在右侧)?
  • 在我的项目中,可以有多个点使用相同的 x,y 值。那么如何为这些具有相同 x,y 值的点显示多个标记 View ?

  • 使用 this soltion (经过一些修改),我可以获得相同 x,y 值的多个标记 View ,但它们相互覆盖,所以基本上只有一个标记 View 对用户可见。

    期待
    enter image description here

    结果 - 如果左边没有足够的空间,点隐藏在标记 View 下方。如何将标记 View 移动到该点的左/右/上/下。
    enter image description here

    最佳答案

    关于您的第一点-在我的项目中,我实现了 draw MarkerView 的方法。为此,我创建了一个 CustomMarkerView 类,如果图形上没有右侧空间(如在我的项目中),则标记 View 将显示为向左。为此实现以下类。

    public class CustomMarkerView extends MarkerView {

    private int uiScreenWidth;

    public CustomMarkerView(Context context, int layoutResource) {
    super(context, layoutResource);
    uiScreenWidth = getResources().getDisplayMetrics().widthPixels;

    }

    @Override
    public void draw(Canvas canvas, float posx, float posy) {
    // Checking and updating offsets.
    int w = getWidth();
    if ((uiScreenWidth - posx - w) < w) {
    posx -= w;
    }
    // draw
    canvas.translate(posx, posy);
    draw(canvas);
    canvas.translate(-posx, -posy);
    }
    }

    在此之后添加此 CustomMarkerView mv = new CustomMarkerView(this, R.layout.your_markerview_layout);在您实现图表的类文件中。

    然后,添加 lineChart.setMarker(mv);在你的图表中。如果不符合您的期望,请修补位置 posx and posy .

    关于android - 如何在相同的 x,y 值上管理多个标记 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59488495/

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