SQLite 데이터베이스의 배터리 연결 시간 (날짜 필드 - 문자열로 표시)과 TimeToCharge (초 - 필요하면 float으로 표시 할 수 있음) 필드가 있습니다. 나는 X 축에 연결 시간과 y 축에 충전 할 시간의 XY 그래프를 표시하고 싶다. 내가 봤 거든 안드로이드에 차트 API를 많이 발견하지만, kiChart 같은 몇 가지를 구현 한 후, 나는 조금 혼란스러워, 내 요구 사항, 안드로이드에 차트 솔루션이 가장 적합합니다. 매우 역동적이고 세부적인 그래프를 표시하고 싶지는 않지만 사용할 수있는 모든 차트 작성 솔루션을 사용해 보면 많은 시간을 소비하게됩니다.android에서 SQLite 데이터베이스 데이터를 사용하여 XY 차트 표시
그래서 필자는 필자의 요구 사항을 충족시킬 수있는 구현을 시도하고 구현할 수 있습니다. 당신이 생각하는 것이 무엇인지에 관해서는 최선의 무료 차트 작성 솔루션입니다.
감사 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