您的位置:首页 > 移动开发 > Android开发

android 柱状图(带动画的)

2015-10-02 10:49 489 查看




import java.util.ArrayList;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.animation.AnimationUtils;

import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.utils.ColorTemplate;
import com.github.mikephil.charting.utils.XLabels;
import com.github.mikephil.charting.utils.XLabels.XLabelPosition;

public class MainActivity extends ActionBarActivity {

private BarChart mSaltChart;

public void  v){
startActivity(new Intent(this,MainActivity.class));
finish();
overridePendingTransition(0, 0);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mSaltChart = (BarChart) findViewById(R.id.chart_salt);

initChart();
initAnimotion();
}

private void initAnimotion() {
mSaltChart.setAnimation(AnimationUtils.loadAnimation(this,
R.anim.in_leftright));
mSaltChart.setVisibility(View.VISIBLE);
mSaltChart.animateY(1000);
}

private void initChart() {
// TODO Auto-generated method stub
/**
* 单位
*/
mSaltChart.setUnit("ml");
/**
* 横坐标
*/
mSaltChart.setDescription("盐量监控 ml/h");
/**
* 柱状图数量
*/
mSaltChart.setMaxVisibleValueCount(12);
/**
* 设置图表中的值的位数
*/
mSaltChart.setValueDigits(2);
/**
* 3D效果
*/
mSaltChart.set3DEnabled(true);
/**
* 缩放只能在X和Y轴分别做
*/
mSaltChart.setPinchZoom(false);
mSaltChart.setDrawBarShadow(false);
mSaltChart.setDrawVerticalGrid(false);
mSaltChart.setDrawHorizontalGrid(false);
mSaltChart.setDrawGridBackground(false);
XLabels xLabels = mSaltChart.getXLabels();
xLabels.setPosition(XLabelPosition.BOTTOM);
xLabels.setCenterXLabelText(true);
xLabels.setSpaceBetweenLabels(0);
mSaltChart.setDrawYLabels(true);
mSaltChart.setDrawLegend(false);
mSaltChart.setDrawYValues(true);
/**
* 设置动画时间
*/
mSaltChart.animateY(1000);
/**
* 柱状图数据传入
*/
new chartTask().execute(50);
}

/**
* 柱状图数据传入
*/
private class chartTask extends AsyncTask<Integer, Integer, BarData> {
@Override
protected void onPreExecute() {

}

@Override
protected BarData doInBackground(Integer... arg0) {
// TODO Auto-generated method stub
ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();

for (int i = 0; i < 12; i++) {
float mult = (30 + 1);
float val1 = (float) (Math.random() * mult) + mult / 3;
yVals1.add(new BarEntry((int) val1, i));
}

ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < 12; i++) {
xVals.add(i * 2 + "h");
}

/**
* 设置颜色
*/
BarDataSet set1 = new BarDataSet(yVals1, "Data Set");
set1.setColors(ColorTemplate.createColors(MainActivity.this,
ColorTemplate.VORDIPLOM_COLORS));

ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>();
dataSets.add(set1);

BarData data = new BarData(xVals, dataSets);
return data;
}

@Override
protected void onPostExecute(BarData result) {
// TODO Auto-generated method stub
mSaltChart.setData(result);
mSaltChart.invalidate();
super.onPostExecute(result);
}

}
}

需要的朋友请私聊,因为还有一个架包没法上传(702246917)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: