Sto utilizzando una classe MarkerView per mostrare i panorami nel grafico. Il layout markerview che ho creato contiene due textview, uno sotto l'altro.MarkerView esce dal grafico per l'ultimo punto del grafico
Il problema che sto affrontando è che il markerview per l'ultimo punto sul grafico è la metà all'interno del grafico e metà all'esterno del grafico. Le due immagini sottostanti stato chiaramente il problema:
La prima immagine mostra una markerview per un punto nel centro del grafico che mostra senza alcun problema:
La seconda immagine, come mostrato sotto , mostra il markerview per l'ultimo punto del grafico, che è la metà all'interno del grafico.
Come faccio ad avere questo markerview per regolare in modo che si vede all'interno del grafico.
Il wiki non specifica alcuna personalizzazione per il markerview. Ci sono altre personalizzazioni?
Inoltre, in caso di un grafico a linee multiple, se si fa clic solo su uno dei punti di linea, l'analisi dei contrassegni non presenta problemi. Ma se clicco per il markerview su qualsiasi punto sull'altra linea, l'applicazione fallisce. Qualche idea del perché accada questo.
Il codice per la classe markerview è il seguente:
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();
}
}
Le due proprietà XML non aiutano. –
Inoltre, quando clicco su un punto del grafico ottengo due linee che si intersecano nel punto cliccato. Si prega di fare riferimento alle immagini nella domanda. Come rimuovo quelle linee? –
Sono chiamate linee di indicatori di evidenziazione, dare un'occhiata a [la documentazione] (https://github.com/PhilJay/MPAndroidChart/wiki/Interaction-with-the-Chart). –