我正在使用MarkerView类在图表中显示标记视图.我创建的markerview布局包含两个textview,一个在另一个之下.
我面临的问题是图表上最后一个点的标记视图是图表中的一半,而图表中的一半.下面的两张图片清楚地说明了问题:
第二个图像,如下所示,显示图表最后一个点的标记视图,它是图表中的一半.
Wiki不会为markerview声明任何自定义.还有更多自定义吗?
此外,如果是多线图,如果我只点击其中一个线点,则markerview没有问题.但是,如果我在另一行的任何点上单击标记视图,则应用程序将失败.知道为什么会这样.
markerview类的代码如下:
public class TooltipView extends MarkerView { private BaseGraphMetadata mBaseGraphMetadata; private TextView mTooltipDate,mTooltipValue; public TooltipView(Context context,int layoutResource,BaseGraphMetadata baseGraphMetadata) { super(context,layoutResource); mTooltipDate = (TextView)findViewById(R.id.tooltip_date); mTooltipValue = (TextView)findViewById(R.id.tooltip_value); mBaseGraphMetadata = baseGraphMetadata; } @Override public void refreshContent(Entry entry,int i) { List<DrillDownInfo> drillDownInfoList = (List<DrillDownInfo>) entry.getData(); DrillDownInfo drillDownInfo = drillDownInfoList.get(i); Map<String,String> group = drillDownInfo.getGroupByNameVsGroupByValue(); Iterator iterator = group.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry pair = (Map.Entry)iterator.next(); if(pair.getKey()!=null && pair.getValue()!=null) { String key = (String) pair.getKey(); key = key.toUpperCase(); Double value = Double.parseDouble((String) pair.getValue()); String formattedValue = mBaseGraphMetadata.getDataFormatter().getFormattedValue(value); mTooltipDate.setText(key + " : " + formattedValue); } iterator.remove(); } mTooltipValue.setText(String.valueOf("VALUE : "+entry.getVal())); } @Override public int getXOffset() { return -(getWidth() / 2); } @Override public int getYOffset() { return -getHeight(); } }