Each time I call this method, it returns a nullpointer exception:
java.lang.NullPointerException on org.achartengine.chart.XYChart.toScreenPoint (XYChart.java:867)
I see the mScreenR chart is null
Without using this method, toScreenPoint (double) diagrams work well, this is the code:
package com.insights.insights.gui; import java.util.ArrayList; import org.achartengine.ChartFactory; import org.achartengine.GraphicalView; import org.achartengine.chart.LineChart; import org.achartengine.chart.PointStyle; import org.achartengine.chart.XYChart; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.model.XYSeries; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; import com.insights.insights.R; import com.insights.insights.local.ApplicationsController; import com.insights.insights.model.AppMetrics; import com.insights.insights.model.Application; import com.insights.insights.model.Applications; import com.insights.insights.model.Day; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsoluteLayout; import android.widget.LinearLayout; import android.widget.Toast; public class ChartFragment extends Fragment { private XYMultipleSeriesRenderer renderer; private XYMultipleSeriesDataset dataset; private GraphicalView graphicalView; private XYSeries firstSeries; private XYChart chart=null; private String apiKey; private ArrayList<Day> days; private View view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); apiKey = getArguments().getString(getString(R.string.tabs_activity_api_key)); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.chart_fragment, container, false); v.findViewById(R.idChartFragment.container).requestFocus(); this.view = v; return v; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState);
And this is the layout file:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+idChartFragment/container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> <LinearLayout android:id="@+idChartFragment/Chart" android:layout_width="300dp" android:layout_height="300dp" android:orientation="horizontal"/> <AbsoluteLayout android:id="@+idChartFragment/absolute" android:layout_width="300dp" android:layout_height="300dp"/> </RelativeLayout>
Second edit:
I want to do something like this:

With my code, I do this:

This is my code:
package com.insights.insights.gui; import java.util.ArrayList; import java.util.List; import org.achartengine.GraphicalView; import org.achartengine.chart.ClickableArea; import org.achartengine.chart.LineChart; import org.achartengine.chart.PointStyle; import org.achartengine.chart.XYChart; import org.achartengine.model.SeriesSelection; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.model.XYSeries; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Typeface; import android.os.Bundle; import android.support.v4.app.Fragment; import android.text.Layout; import android.util.AttributeSet; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.widget.AbsoluteLayout; import android.widget.AbsoluteLayout.LayoutParams; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.google.android.maps.ItemizedOverlay.OnFocusChangeListener; import com.insights.insights.R; import com.insights.insights.local.ApplicationsController; import com.insights.insights.model.AppMetrics; import com.insights.insights.model.Application; import com.insights.insights.model.Applications; import com.insights.insights.model.Day; public class ChartFragment extends Fragment { private XYMultipleSeriesRenderer renderer; private XYMultipleSeriesDataset dataset; private GraphicalView graphicalView; private XYSeries firstSeries; private XYChart chart = null; private AbsoluteLayout absoluteLayout; private ImageView point; private LinearLayout pointInfoConatiner; private TextView pointNumberText; private TextView pointNameText; private TextView pointDateText; private Typeface avenirHeavy; private Typeface avenirLight; private String apiKey; private String metricName; private ArrayList<Day> days;
Does anyone know how I can:
1-exit from the lower border
2-way out of the pink chart line
3 - The chart does not move when I touch the points
4- When I ask the screen point why many times the y value returns infinite