android:
id="@+id/mBarChart"
android:
layout_width="match_parent"
android:
layout_height="0dp"
android:
layout_weight="1"/>
继续用BarChart,那我们来做初始化的动作
mBarChart.getDescription().setEnabled(false);
mBarChart.setMaxVisibleValueCount(60);
mBarChart.setPinchZoom(false);
mBarChart.setDrawBarShadow(false);
mBarChart.setDrawGridBackground(false);
XAxisxAxis=mBarChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
mBarChart.getAxisLeft().setDrawGridLines(false);
mBarChart.animateY(2500);
mBarChart.getLegend().setEnabled(false);
这个初始化我实际上并没有设置什么特殊的属性,然后设置数据
//设置数据
privatevoidsetData(){
ArrayListyVals1=newArrayList();
for(inti=0;i<10;i++){
floatmult=50;
floatval=(float)(Math.random()*mult)+mult/3;
yVals1.add(newBarEntry(i,val));
}
BarDataSetset1;
if(mBarChart.getData()!
=null&&
mBarChart.getData().getDataSetCount()>0){
set1=(BarDataSet)mBarChart.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
mBarChart.getData().notifyDataChanged();
mBarChart.notifyDataSetChanged();
}else{
set1=newBarDataSet(yVals1,"日期设置");
//设置多彩也可以单一颜色
set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
set1.setDrawValues(false);
ArrayListdataSets=newArrayList();
dataSets.add(set1);
BarDatadata=newBarData(dataSets);
mBarChart.setData(data);
mBarChart.setFitBars(true);
}
mBarChart.invalidate();
}
在设置数据方面我也只是设置了多彩的颜色,这样就能实现我们上图的效果了,这个也算是一个比较简单的图表了
二.显示顶点值
好,基本功能都差不多,那我们来看下全部代码
activity_another.xml
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
layout_width="match_parent"
android:
layout_height="match_parent"
android:
orientation="vertical">
android:
id="@+id/mBarChart"
android:
layout_width="match_parent"
android:
layout_height="0dp"
android:
layout_weight="1"/>
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
orientation="horizontal">
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
orientation="horizontal">
android:
id="@+id/btn_save_pic"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="保存到相册"/>
android:
id="@+id/btn_auto_mix_max"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="自动最大最小值"/>
android:
id="@+id/btn_actionToggleHighlight"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="高亮显示"/>
android:
id="@+id/btn_show_border"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="显示边框"/>
AnotherBarActivity
publicclassAnotherBarActivityextendsBaseActivityimplementsView.OnClickListener{
privateBarChartmBarChart;
//显示顶点值
privateButtonbtn_show_values;
//x轴动画
privateButtonbtn_anim_x;
//y轴动画
privateButtonbtn_anim_y;
//xy轴动画
privateButtonbtn_anim_xy;
//保存到sd卡
privateButtonbtn_save_pic;
//切换自动最大最小值
privateButtonbtn_auto_mix_max;
//高亮显示
privateButtonbtn_actionToggleHighlight;
//显示边框
privateButtonbtn_show_border;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another);
initView();
}
//初始化
privatevoidinitView(){
//基本控件
btn_show_values=(Button)findViewById(R.id.btn_show_values);
btn_show_values.setOnClickListener(this);
btn_anim_x=(Button)findViewById(R.id.btn_anim_x);
btn_anim_x.setOnClickListener(this);
btn_anim_y=(Button)findViewById(R.id.btn_anim_y);
btn_anim_y.setOnClickListener(this);
btn_anim_xy=(Button)findViewById(R.id.btn_anim_xy);
btn_anim_xy.setOnClickListener(this);
btn_save_pic=(Button)findViewById(R.id.btn_save_pic);
btn_save_pic.setOnClickListener(this);
btn_auto_mix_max=(Button)findViewById(R.id.btn_auto_mix_max);
btn_auto_mix_max.setOnClickListener(this);
btn_actionToggleHighlight=(Button)findViewById(R.id.btn_actionToggleHighlight);
btn_actionToggleHighlight.setOnClickListener(this);
btn_show_border=(Button)findViewById(R.id.btn_show_border);
btn_show_border.setOnClickListener(this);
mBarChart=(BarChart)findViewById(R.id.mBarChart);
mBarChart.getDescription().setEnabled(false);
mBarChart.setMaxVisibleValueCount(60);
mBarChart.setPnchZoom(false);
mBarChart.setDrawBarShadow(false);
mBarChart.setDrawGridBackground(false);
XAxisxAxis=mBarChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
mBarChart.getAxisLeft().setDrawGridLines(false);
mBarChart.animateY(2500);
mBarChart.getLegend().setEnabled(false);
setData();
}
//设置数据
privatevoidsetData(){
ArrayListyVals1=newArrayList();
for(inti=0;i<10;i++){
floatmult=50;
floatval=(float)(Math.random()*mult)+mult/3;
yVals1.add(newBarEntry(i,val));
}
BarDataSetset1;
if(mBarChart.getData()!
=null&&
mBarChart.getData().getDataSetCount()>0){
set1=(BarDataSet)mBarChart.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
mBarChart.getData().notifyDataChanged();
mBarChart.notifyDataSetChanged();
}else{
set1=newBarDataSet(yVals1,"日期设置");
//设置多彩也可以单一颜色
set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
set1.setDrawValues(false);
ArrayListdataSets=newArrayList();
dataSets.add(set1);
BarDatadata=newBarData(dataSets);
mBarChart.setData(data);
mBarChart.setFitBars(true);
}
mBarChart.invalidate();
}
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
//显示顶点值
caseR.id.btn_show_values:
for(IDataSetset:
mBarChart.getData().getDataSets())
set.setDrawValues(!
set.isDrawValuesEnabled());
mBarChart.invalidate();
break;
//x轴动画
caseR.id.btn_anim_x:
mBarChart.animateX(3000);
break;
//y轴动画
caseR.id.btn_anim_y:
mBarChart.animateY(3000);
break;
//xy轴动画
caseR.id.btn_anim_xy:
mBarChart.animateXY(3000,3000);
break;
//保存到sd卡
caseR.id.btn_save_pic:
if(mBarChart.saveToGallery("title"+System.currentTimeMillis(),50)){
Toast.makeText(getApplicationContext(),"保存成功",
Toast.LENGTH_SHORT).show();
}else
Toast.makeText(getApplicationContext(),"保存失败",
Toast.LENGTH_SHORT).show();
break;
//切换自动最大最小值
caseR.id.btn_auto_mix_max:
mBarChart.setAutoScaleMinMaxEnabled(!
mBarChart.isAutoScaleMinMaxEnabled());
mBarChart.notifyDataSetChanged();
break;
//高亮显示
caseR.id.btn_actionToggleHighlight:
if(mBarChart.getData()!
=null){
mBarChart.getData().setHighlightEnabled(
!
mBarChart.getData().isHighlightEnabled());
mBarChart.invalidate();
}
break;
//显示边框
caseR.id.btn_show_border:
for(IBarDataSetset:
mBarChart.getData().getDataSets())
((BarDataSet)set).setBarBorderWidth(set.getBarBorderWidth()==1.f?
0.f:
1.f);
mBarChart.invalidate();
break;
}
}
}
OK,这样这个图表就大功告成了