001.
private
void
openChart() {
002.
003.
View mChart;
004.
SQLiteDatabase mDB;
005.
SQLiteOpenHelper myHelpers;
006.
Cursor mCursor;
007.
ArrayList<Double> KcalValue;
008.
ArrayList<String> AllRecord;
009.
010.
int
pDay,pMonth,pYear;
011.
Calendar cal = Calendar.getInstance();
012.
pDay = cal.get(Calendar.DAY_OF_MONTH);
013.
pMonth = cal.get(Calendar.MONTH);
014.
pYear = cal.get(Calendar.YEAR);
015.
016.
String Date =
"ว/ด/ป : "
+ pDay +
"/"
+ (pMonth+
1
) +
"/"
+ (pYear +
543
);
017.
018.
int
Increate =
1
;
019.
020.
ArrayList<Integer> X_value =
new
ArrayList<Integer>();
021.
022.
XYSeries kcalXySeries =
new
XYSeries(
"ค่าแคลอรี่ที่บริโภค"
);
023.
024.
myHelpers =
new
ProfileKcalDBClass(
this
);
025.
mDB = myHelpers.getWritableDatabase();
026.
027.
mCursor = mDB.rawQuery(
"SELECT "
+
" SUM("
+ ProfileKcalDBClass.COL_PRO_TOTAL +
") AS TotalKcal"
+
" , "
+
028.
ProfileKcalDBClass.COL_PRO_DATE +
029.
" FROM "
+ ProfileKcalDBClass.TABLE_KCAL_PRO +
030.
" WHERE "
+ ProfileKcalDBClass.COL_PRO_TYPE +
" = '1'"
+
031.
" AND substr("
+ ProfileKcalDBClass.COL_PRO_DATE +
",4,6) = '"
+
032.
((pMonth+
1
) +
"/"
+ (pYear +
543
)) +
"'"
+
033.
" GROUP BY "
+ ProfileKcalDBClass.COL_PRO_DATE ,
null
);
034.
035.
KcalValue =
new
ArrayList<Double>();
036.
AllRecord =
new
ArrayList<String>();
037.
038.
mCursor.moveToFirst();
039.
while
(!mCursor.isAfterLast()){
040.
KcalValue.add(mCursor.getDouble(mCursor.getColumnIndex(
"TotalKcal"
)));
041.
AllRecord.add(mCursor.getString(mCursor.getColumnIndex(ProfileKcalDBClass.COL_PRO_DATE)));
042.
X_value.add(Increate);
043.
Increate++;
044.
045.
mCursor.moveToNext();
046.
}
047.
048.
for
(
int
i =
0
; i < X_value.size(); i++){
049.
kcalXySeries.add(X_value.get(i),KcalValue.get(i));
050.
}
051.
052.
XYMultipleSeriesDataset dataset =
new
XYMultipleSeriesDataset();
053.
dataset.addSeries(kcalXySeries);
054.
055.
XYSeriesRenderer Renderer =
new
XYSeriesRenderer();
056.
Renderer.setDisplayChartValues(
true
);
057.
Renderer.setChartValuesTextSize(
18
);
058.
Renderer.setChartValuesSpacing(
10
);
059.
Renderer.setChartValuesTextAlign(Align.CENTER);
060.
Renderer.setColor(Color.RED);
061.
062.
XYMultipleSeriesRenderer multiRenderer =
new
XYMultipleSeriesRenderer();
063.
multiRenderer.setChartTitle(
"CALORIES IN"
);
064.
multiRenderer.setXTitle(
"\n \n \n "
+ Date);
065.
multiRenderer.setZoomButtonsVisible(
true
);
066.
067.
multiRenderer.setLabelsTextSize(
18
);
068.
multiRenderer.setLegendTextSize(
18
);
069.
multiRenderer.setAxisTitleTextSize(
18
);
070.
multiRenderer.setPanEnabled(
true
,
true
);
071.
multiRenderer.setZoomEnabled(
false
,
false
);
072.
073.
multiRenderer.setApplyBackgroundColor(
true
);
074.
multiRenderer.setBackgroundColor(Color.WHITE);
075.
multiRenderer.setMarginsColor(Color.WHITE);
076.
multiRenderer.setTextTypeface(
null
, Typeface.BOLD);
077.
multiRenderer.setShowGrid(
true
);
078.
multiRenderer.setGridColor(Color.GRAY);
079.
multiRenderer.setLabelsColor(Color.BLACK);
080.
multiRenderer.setChartTitleTextSize(
20
);
081.
multiRenderer.setAxesColor(Color.BLACK);
082.
multiRenderer.setXLabelsColor(Color.BLACK);
083.
multiRenderer.setYLabelsColor(
0
, Color.BLACK);
084.
multiRenderer.setXLabelsAlign(Align.CENTER);
085.
multiRenderer.setYLabelsAlign(Align.CENTER);
086.
multiRenderer.setXLabelsAngle(
0
);
087.
multiRenderer.setBarWidth(
50
);
088.
multiRenderer.setBarSpacing(
0.5
);
089.
090.
multiRenderer.setXLabels(
0
);
091.
multiRenderer.setYAxisMin(
0
);
092.
093.
for
(
int
i =
0
;i < AllRecord.size();i++){
094.
multiRenderer.addXTextLabel(i +
1
,AllRecord.get(i));
095.
}
096.
multiRenderer.addSeriesRenderer(Renderer);
097.
098.
LinearLayout chartContainer = (LinearLayout) findViewById(R.id.tab3_ref);
099.
100.
mChart = ChartFactory.getBarChartView(getBaseContext(), dataset, multiRenderer, Type.DEFAULT);
101.
102.
chartContainer.addView(mChart);
103.
}