If you think the Android project customhellochartdemo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package lecho.lib.hellocharts.samples;
/*fromwww.java2s.com*/import java.util.ArrayList;
import java.util.List;
import lecho.lib.hellocharts.model.Line;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.model.Viewport;
import lecho.lib.hellocharts.util.Utils;
import lecho.lib.hellocharts.view.LineChartView;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
publicclass GoodBadChartActivity extends ActionBarActivity {
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_good_bad);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
}
}
/**
* A placeholder fragment containing a simple view.
*/publicstaticclass PlaceholderFragment extends Fragment {
private LineChartView chart;
private LineChartData data;
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_good_bad, container, false);
chart = (LineChartView) rootView.findViewById(R.id.chart);
generateDefaultData();
chart.setLineChartData(data);
// Increase viewport height for better look
Viewport v = chart.getMaximumViewport();
float dy = v.height() * 0.2f;
v.inset(0, -dy);
chart.setMaximumViewport(v);
chart.setCurrentViewport(v, false);
return rootView;
}
privatevoid generateDefaultData() {
// Generate data, every line has 3 points to form filled triangle. Point radius is set to 1 to be almost
// invisible but it has to be there because without points there is not labels. Area transparency is set to
// 255(full opacity).
// Important note. This example uses negative values, to properly fill area below 0 chart base value have to
// be set to 0. That is default base value but if you want to be sure you can call data.setBaseValue(0)
// method.
Line line;
List<PointValue> values;
List<Line> lines = new ArrayList<Line>();
// First good triangle
values = new ArrayList<PointValue>();
values.add(new PointValue(0, 0).setLabel("".toCharArray()));
values.add(new PointValue(1, 1).setLabel("Very Good:)".toCharArray()));
values.add(new PointValue(2, 0).setLabel("".toCharArray()));
line = new Line(values);
line.setColor(Utils.COLOR_GREEN);
line.setAreaTransparency(255);
line.setFilled(true);
line.setPointRadius(1);
line.setHasLabels(true);
lines.add(line);
// Second good triangle
values = new ArrayList<PointValue>();
values.add(new PointValue(3, 0).setLabel("".toCharArray()));
values.add(new PointValue(4, 0.5f).setLabel("Good Enough".toCharArray()));
values.add(new PointValue(5, 0).setLabel("".toCharArray()));
line = new Line(values);
line.setColor(Utils.COLOR_GREEN);
line.setAreaTransparency(255);
line.setFilled(true);
line.setPointRadius(1);
line.setHasLabels(true);
lines.add(line);
// Bad triangle
values = new ArrayList<PointValue>();
values.add(new PointValue(1, 0).setLabel("".toCharArray()));
values.add(new PointValue(2, -1).setLabel("Very Bad".toCharArray()));
values.add(new PointValue(3, 0).setLabel("".toCharArray()));
line = new Line(values);
line.setColor(Utils.COLOR_RED);
line.setAreaTransparency(255);
line.setFilled(true);
line.setPointRadius(1);
line.setHasLabels(true);
lines.add(line);
data = new LineChartData(lines);
// *** Important, set base value to 0 to fill negative part of chart.
// data.setBaseValue(0);
}
}
}