У меня есть время подключения к зарядке аккумулятора (поле даты даты - представлено как строка) и поля TimeToCharge (секунды - могут отображаться как поплавка, если требуется) в базе данных SQLite. Я хотел бы показать график XY времени соединения по оси X и времени для заряда по оси y. Я googled и нашел много диаграмм api или jar's в android, но после того, как я реализовал несколько таких, как kiChart, я был немного смущен, что соответствовало моему требованию, какое решение для построения диаграмм в android было бы лучше всего подходит. Я не хочу отображать очень динамичный/подробный график, но затем, выполняя попытку каждого доступного графического решения, будет потреблять много времени.Отображение графика XY с использованием данных базы данных SQLite в android
Итак, я могу определенно попробовать и реализовать тот, который будет работать для моего требования. Не могли бы вы посоветовать, что, по вашему мнению, лучшее и бесплатное решение для построения графиков.
Благодаря Omkar Ghaisas
public class BatteryGraph extends Activity
{
/** Called when the activity is first created. */
private XYMultipleSeriesDataset mDataset;
private XYMultipleSeriesRenderer mRenderer;
List<double[]> values = new ArrayList<double[]>();
private GraphicalView mChartView;
private TimeSeries time_series;
// chart container
private LinearLayout layout;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.graph);
layout = (LinearLayout) findViewById(R.id.chart);
// create dataset and renderer
mDataset = new XYMultipleSeriesDataset();
mRenderer = new XYMultipleSeriesRenderer();
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.setPointSize(5f);
mRenderer.setMargins(new int[] {0,20,20,0});
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.YELLOW);
r.setPointStyle(PointStyle.POINT);
r.setFillPoints(true);
mRenderer.addSeriesRenderer(r);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(20);
mRenderer.setPanEnabled(true);
mRenderer.setFitLegend(true);
mRenderer.setDisplayChartValues(true);
mRenderer.setInScroll(true);
mRenderer.setShowGrid(true);
mRenderer.setOrientation(Orientation.HORIZONTAL);
mRenderer.setShowLabels(true);
mRenderer.setXLabelsAngle(60);
mRenderer.setXTitle("Date");
mRenderer.setYTitle("Time in Secs");
time_series = new TimeSeries("Charging Date vs TimeTakenToCharge");
mDataset.addSeries(time_series);
fillData();
mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer, "dd/mm/yy");
layout.addView(mChartView);
}
private void fillData()
{
DatabaseAppBlock dbHelper = new DatabaseAppBlock(getApplicationContext());
Cursor chargeCycleData = dbHelper.getAllChargeCycleData("Asc");
int rowCount = chargeCycleData.getCount();
if(rowCount > 0)
{
chargeCycleData.moveToFirst();
for (int i = 0; i < rowCount ; i++)
{
time_series.add(CommonFunc.GetDateFromString(chargeCycleData.getString(chargeCycleData.getColumnIndex(Constants.colChargeConnectTime))),chargeCycleData.getDouble(chargeCycleData.getColumnIndex(Constants.colTimeToCharge))); chargeCycleData.moveToPosition(i+1);
} }
}}
у вас нет поиска достаточно. Потому что есть более полезные библиотеки, доступные – MKJParekh