Charter
介绍:
一个简单小巧的图表,包括曲线图和柱状图,支持动画效果。
运行效果:
使用说明:
build.gradle
dependencies {
compile 'com.hrules:charter:1.1.1'
}
MainActivity.java
package com.hrules.charter.demo;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.hrules.charter.CharterBar;
import com.hrules.charter.CharterLine;
import com.hrules.charter.CharterXLabels;
import com.hrules.charter.CharterYLabels;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private static final int DEFAULT_ITEMS_COUNT = 15;
private static final int DEFAULT_RANDOM_VALUE_MIN = 10;
private static final int DEFAULT_RANDOM_VALUE_MAX = 100;
private float\[\] values;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
values =
fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX, DEFAULT_RANDOM_VALUE_MIN);
Resources res = getResources();
int\[\] barColors = new int\[\] {
res.getColor(R.color.lightblue500), res.getColor(R.color.lightblue400),
res.getColor(R.color.lightblue300)
};
// charter_line
final CharterLine charterLine = (CharterLine) findViewById(R.id.charter_line);
charterLine.setValues(values);
charterLine.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
DEFAULT_RANDOM_VALUE_MIN);
charterLine.setValues(values);
charterLine.show();
}
});
// charter_bar
final CharterBar charterBar = (CharterBar) findViewById(R.id.charter_bar);
charterBar.setValues(values);
charterBar.setColors(barColors);
charterBar.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
DEFAULT_RANDOM_VALUE_MIN);
charterBar.setValues(values);
charterBar.show();
}
});
// charter_bar_no_margin
final CharterBar charterBarNoMargin = (CharterBar) findViewById(R.id.charter_bar_no_margin);
charterBarNoMargin.setValues(values);
charterBarNoMargin.setBarMargin(0);
charterBarNoMargin.setColors(barColors);
charterBarNoMargin.setColorsBackground(new int\[\] { android.R.color.white });
charterBarNoMargin.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
DEFAULT_RANDOM_VALUE_MIN);
charterBarNoMargin.setValues(values);
charterBarNoMargin.show();
}
});
// charter_line_XLabel
final CharterXLabels charterLineLabelX =
(CharterXLabels) findViewById(R.id.charter_line_XLabel);
charterLineLabelX.setStickyEdges(true);
charterLineLabelX.setValues(values);
final CharterLine charterLineWithLabel =
(CharterLine) findViewById(R.id.charter_line_with_XLabel);
charterLineWithLabel.setValues(values);
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(values);
charterLineWithLabel.show();
charterLineLabelX.setValues(values);
}
});
// charter_bar_XLabel
final CharterXLabels charterBarLabelX = (CharterXLabels) findViewById(R.id.charter_bar_XLabel);
charterBarLabelX.setStickyEdges(false);
charterBarLabelX.setVisibilityPattern(new boolean\[\] { true, false });
charterBarLabelX.setValues(values);
final CharterBar charterBarWithLabel = (CharterBar) findViewById(R.id.charter_bar_with_XLabel);
charterBarWithLabel.setValues(values);
charterBarWithLabel.setColors(barColors);
charterBarWithLabel.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
DEFAULT_RANDOM_VALUE_MIN);
charterBarWithLabel.setValues(values);
charterBarWithLabel.show();
charterBarLabelX.setValues(values);
}
});
// charter_line_YLabel
final CharterYLabels charterLineYLabel =
(CharterYLabels) findViewById(R.id.charter_line_YLabel);
charterLineYLabel.setValues(values, true);
final CharterLine charterLineWithYLabel =
(CharterLine) findViewById(R.id.charter_line_with_YLabel);
charterLineWithYLabel.setValues(values);
charterLineWithYLabel.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
DEFAULT_RANDOM_VALUE_MIN);
charterLineWithYLabel.setValues(values);
charterLineWithYLabel.show();
charterLineYLabel.setValues(values, true);
}
});
// charter_bar_YLabel
final CharterYLabels charterBarYLabel = (CharterYLabels) findViewById(R.id.charter_bar_YLabel);
charterBarYLabel.setVisibilityPattern(new boolean\[\] { true, false });
charterBarYLabel.setValues(values, true);
final CharterBar charterBarWithYLabel = (CharterBar) findViewById(R.id.charter_bar_with_YLabel);
charterBarWithYLabel.setValues(values);
charterBarWithYLabel.setColors(barColors);
charterBarWithYLabel.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
values = fillRandomValues(DEFAULT_ITEMS_COUNT, DEFAULT_RANDOM_VALUE_MAX,
DEFAULT_RANDOM_VALUE_MIN);
charterBarWithYLabel.setValues(values);
charterBarWithYLabel.show();
charterBarYLabel.setValues(values, true);
}
});
}
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;
}
return newRandomValues;
}
}
已下载
0