MPAndroidChart Marker的TextView外观

时间:2018-05-28 07:26:46

标签: android textview mpandroidchart marker

我在触摸LineChart上的某个点时尝试添加标记。 我尝试了不同的工作方式,但是我无法在TextView中显示文本。

private IMarker markerView;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    mChart = findViewById(R.id.peaks_chart);
    mChart.setTouchEnabled(true);
    mChart.setDragEnabled(true);
    mChart.setScaleEnabled(true);
    mChart.setPinchZoom(true);
    mChart.setBackgroundColor(Color.LTGRAY);

    markerView = new CustomMarkerView(getApplicationContext(),R.layout.tv_content);
    mChart.setMarker(markerView);
    mChart.setDrawMarkers(true);

    mChart.getLegend().setEnabled(true);

    XAxis xl = mChart.getXAxis();
    xl.setTypeface(mTfLight);
    xl.setTextColor(Color.WHITE);
    xl.setDrawGridLines(false);
    xl.setDrawLabels(true);
    xl.setEnabled(true);

    YAxis leftAxis = mChart.getAxisLeft();
    leftAxis.setTypeface(mTfLight);
    leftAxis.setTextColor(Color.WHITE);
    leftAxis.setDrawGridLines(false);
    leftAxis.setDrawLabels(true);
    leftAxis.setEnabled(true);

    YAxis rightAxis = mChart.getAxisRight();
    rightAxis.setEnabled(false);

    dataSet_r = new LineDataSet(null,"right nost");
    dataSet_r.setDrawValues(true);
    rChartLineData = new LineData();
}

在我输入数据集的条目后,我调用notifyDataSetChanged()和  无效()。

自定义标记视图类:

public class CustomMarkerView extends MarkerView implements IMarker
{
    private TextView textView;

    public CustomMarkerView(Context context, int layoutResource)
    {
        super(context, layoutResource);
        textView = findViewById(R.id.tvContent);
    }

    @Override
    public void refreshContent(Entry e, Highlight highlight)
    {
        textView.setText(String.valueOf(e.getX())+"777");
        super.refreshContent(e, highlight);
    }
}

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/battery_full"
android:gravity="center"
 >

<TextView
    android:id="@+id/tvContent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:ellipsize="end"
    android:singleLine="true"
    android:text="1234"
    android:textAlignment="center"
    android:textColor="#000000"
    android:textSize="14sp" />

</RelativeLayout>

图表按预期绘制,但是当我按下图表上的某个点时,只显示背景图像而没有文本(即使我没有尝试更改文本,也没有文字在TextView中。

我做错了什么???

1 个答案:

答案 0 :(得分:1)

测试你的情况,问题是

android:textAlignment="center"
标记的

,将其删除,将显示文本。

标记与textAlignmentgravity属性存在一些冲突。 只需设置TextView宽度wrap_content,它就会居中。