android饼状图表
android饼状图表
- 博客分类:
- 移动android开发
相信图表再很多统计应用都会应用,再这里我想向介绍一个第三方的jar包--j4lChartAndroid.jar,再这里基本上平时用到的图表都有,这里我们就只介绍饼状3d图表
1、xml文件
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayoutandroid:id="@+id/course_viewflipper"
android:background="#FFFFFF"android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
</LinearLayout>
2、activity类
publicclassShowImageextendsActivity {
/** Called when the activity is first created. */
ChartLoadercha=newChartLoader();
ChartPanelchartPanel;
staticList<ddd>list;
staticdouble[]valueList;
staticString[]labellist;//标签值
staticboolean[]gapsValueList;
staticFillStyle[]fillStyle_color;
staticChartColor[]color=newChartColor[] {
GraphicsProvider.getColor(ChartColor.CYAN),
GraphicsProvider.getColor(ChartColor.BLUE),
GraphicsProvider.getColor(ChartColor.GREEN),
GraphicsProvider.getColor(ChartColor.YELLOW),
GraphicsProvider.getColor(ChartColor.RED),
GraphicsProvider.getColor(ChartColor.SKYBLUE),
GraphicsProvider.getColor(ChartColor.PINK) };
staticint[]labelColor=newint[] { Color.CYAN, Color.BLUE,
Color.GREEN, Color.YELLOW, Color.RED, Color.parseColor("#00CCFF"), Color.parseColor("#ffc0cb") };
@Override
publicvoidonCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
list= getData();
getValues();
LinearLayout imageview = (LinearLayout) findViewById(R.id.course_viewflipper);
chartPanel=newChartPanel(this);
chartPanel.setChart(Example4());
imageview.addView(chartPanel);
}
publicList<ddd> getData() {
List<ddd> l =newArrayList<ddd>();
ddd d1 =newddd();
d1.setDoor("南门");
d1.setTotal(100);
ddd d2 =newddd();
d2.setDoor("西门");
d2.setTotal(200);
ddd d3 =newddd();
d3.setDoor("北门");
d3.setTotal(300);
ddd d4 =newddd();
d4.setDoor("东门");
d4.setTotal(400);
l.add(d1);
l.add(d2);
l.add(d3);
l.add(d4);
returnl;
}
classddd {
Stringdoor;
doubletotal;
publicString getDoor() {
returndoor;
}
publicvoidsetDoor(String door) {
this.door= door;
}
publicdoublegetTotal() {
returntotal;
}
publicvoidsetTotal(doubletotal) {
this.total= total;
}
}
publicvoidgetValues(){
valueList=newdouble[list.size()];//数值组
gapsValueList=newboolean[list.size()];//饼块之间是否分开组
fillStyle_color=newFillStyle[list.size()];//颜色组
labellist=newString[list.size()];// //图解label组
for(inti = 0; i <list.size(); i++) {
labellist[i] =list.get(i).getDoor();
valueList[i] =list.get(i).getTotal();
fillStyle_color[i] =newFillStyle(color[i]);
if(i<list.size()-1){
gapsValueList[i] =true;
}
}
}
// ==============================================
protectedvoidonDestroy() {
if(chartPanel!=null)
if(chartPanel.getChart() !=null)
chartPanel.getChart().stopUpdater();
super.onDestroy();
}
publicstaticChart Example4() {
PieDataSerie data1 =newPieDataSerie(valueList,fillStyle_color,
gapsValueList,labellist);
data1.valueFont= GraphicsProvider
.getFont("Arial", ChartFont.PLAIN, 14);
// legend
Legend l =newLegend();
l.background=newFillStyle(
GraphicsProvider.getColor(ChartColor.WHITE));
l.border=newLineStyle(1,
GraphicsProvider.getColor(ChartColor.BLACK),
LineStyle.LINE_NORMAL);
for(inti = 0; i <list.size(); i++) {
l.addItem(labellist[i],newFillStyle(color[i]));
}
// create title
Title title =newTitle("");
// plotter
PiePlotter plot =newPiePlotter();
// 3D effect
plot.effect3D=true;
plot.border=newLineStyle(1,GraphicsProvider.getColor(ChartColor.BLACK),LineStyle.LINE_NORMAL);
data1.textDistanceToCenter= 1.3;
plot.labelFormat="#PERCENTAGE#";
// create chart
Chart chart =newChart(title, plot,null,null);
// chart background
chart.back=newFillStyle(GraphicsProvider.getColor(ChartColor.WHITE));
// chart.back.gradientType = FillStyle.GRADIENT_VERTICAL;
// add legend
chart.legend= l;
// legend position and layout
chart.layout= Chart.LAYOUT_LEGEND_RIGHT;
chart.topMargin= 0.1;
chart.bottomMargin= 0.4;// 20%
chart.leftMargin=0.1;
l.verticalLayout=true;
// add data
chart.addSerie(data1);
chart.setHeight(250);
chart.setWidth(320);
returnchart;
}
}
更多相关文章
- android仿微信朋友网、悬浮窗、时间轴、图表、刻度尺、RecyclerV
- 手撸一个Android饼状图表
- appium 【已解决】Android,每次启动手机中都会安装Appium setting
- 简单的 Android 系统主要版本对比图表
- android 图表引擎AChartEngine(线性图)
- Android之关于图表
- Android 图表
- Android-Charts,Android图形图表控件
- android 图表引擎AChartEngine(柱状图)