开源项目chart,使用knife butter
package com.hb.bottomlast;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.hrules.charter.CharterLine;
import com.hrules.charter.CharterXLabels;
import com.hrules.charter.CharterXMarkers;
import com.hrules.charter.CharterYLabels;
import com.hrules.charter.CharterYMarkers;
import java.util.Arrays;
import java.util.Random;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Created by uname on 2016/08/29 0029.
*/
public class Persion2_fragment extends Fragment {
@BindView(R.id.charter_line)
CharterLine charterLine;
@BindView(R.id.charter_line_XLabel)
CharterXLabels charterLineLabelX;
@BindView(R.id.charter_line_with_XLabel)
CharterLine charterLineWithLabel;
@BindView(R.id.charter_line_YLabel)
CharterYLabels charterLineYLabel;
@BindView(R.id.charter_line_with_XMarker)
CharterLine charterLineWithXMarker;
@BindView(R.id.charter_line_XMarker)
CharterXMarkers charterLineXMarkers;
@BindView(R.id.charter_line_with_YMarker)
CharterLine charterLineWithYMarker;
@BindView(R.id.charter_line_YMarker)
CharterYMarkers charterLineYMarkers;
@BindView(R.id.ychart)
CharterYLabels ychart;
private static final int DEFAULT_ITEMS_COUNT = 7;
private static final int DEFAULT_RANDOM_VALUE_MIN = 10;
private static final int DEFAULT_RANDOM_VALUE_MAX = 100;
private float[] values;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
View view = inflater.inflate(R.layout.persion4, container, false);
ButterKnife.bind(this,view);
Resources res = getResources();
int[] barColors = new int[]{
res.getColor(R.color.colorAccent), res.getColor(R.color.colorAccent),
res.getColor(R.color.colorAccent)
};
// charter_line_XLabel
charterLineLabelX.setStickyEdges(true);
String[] values3 = {"a", "4", "5", "7", "6", "3", "6"};
//设置X的值
charterLineLabelX.setValues(values3);
// String[] values2={"1","6","5","4","3","2","7"};
String[] values5 = {"1", "2", "3", "4", "5", "6", "7"};
//设置y轴的值,因为顺序不对,所以要重新排序。
String[] values2 = this.getRightValues(values5);
Log.d("values2", Arrays.toString(values2));
ychart.setValues(values2);
final float[] values4 = {1, 3, 3.5f, 4, 5, 6, 7};
final float[] values6 = {1, 2, 2.5f, 1, 2, 3, 1};
//设置显示的值,可以float
charterLineWithLabel.setValues(values4);
charterLineWithLabel.setValues(values6);
//点击图表的onclick,如果图表太大的话后期可以加。
charterLineWithLabel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
// DEFAULT_RANDOM_VALUE_MIN);
charterLineWithLabel.setValues(values4);
charterLineWithLabel.show();
ychart.setValues(values4);
charterLineLabelX.setValues(values4);
}
});
return view;
}
private float[] fillRandomValues(int length, int max, int min) {
Random random = new Random();
float[] newRandomValues = new float[length];
for (int i = 0; i < newRandomValues.length; i++) {
//newRandomValues[i] = random.nextInt(max - min + 1) - min;
newRandomValues[i]=i;
}
return newRandomValues;
}
//排序之后,得到正确的顺序
public String[] getRightValues(String[] valuesPar) {
String[] test = new String[valuesPar.length];
for (int i = 0; i < valuesPar.length; i++) {
if (i == 0||i==(valuesPar.length-1)){
test[i] = valuesPar[i];
continue;
}
test[i]=valuesPar[valuesPar.length-1-i];
}
return test;
}
}