Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有可能用阿卡丁净来做半个饼图?_Android_Charts_Achartengine - Fatal编程技术网

Android 有没有可能用阿卡丁净来做半个饼图?

Android 有没有可能用阿卡丁净来做半个饼图?,android,charts,achartengine,Android,Charts,Achartengine,您好,我想将Half-PieChart与achartengine一起使用。但我没有成功。我该怎么做?请帮助我 我试过这样做,但是 DefaultRenderer mRenderer = new DefaultRenderer(); mRenderer.setLabelsColor(Color.BLACK); mRenderer.setPanEnabled(false); mRenderer.setChartTitleTextSize(mActivity.getRe

您好,我想将Half-PieChart与achartengine一起使用。但我没有成功。我该怎么做?请帮助我

我试过这样做,但是

    DefaultRenderer mRenderer = new DefaultRenderer();
    mRenderer.setLabelsColor(Color.BLACK);
    mRenderer.setPanEnabled(false);
    mRenderer.setChartTitleTextSize(mActivity.getResources().getDimension(R.dimen.graph_chart_title_size));
    mRenderer.setLabelsTextSize(mActivity.getResources().getDimension(R.dimen.graph_chart_text_size)); 
    mRenderer.setShowLegend(false);
    mRenderer.setClickEnabled(true);

只需使用这个类。您可以根据需要自定义vsh

HalfPieGraph.java

public class HalfPieGraph extends View {

private Paint piePaint;
private RectF rectF;
private float[] data;

public PieGraph(Context context, AttributeSet attrs) {
    super(context, attrs);

    piePaint = new Paint();
    piePaint.setAntiAlias(true);
    piePaint.setDither(true);
    piePaint.setStyle(Paint.Style.FILL);
    data = new float[]{20f, 30f, 10f, 40f};

}

private float[] pieSegment() {

    float[] segValues = new float[this.data.length];
    float Total = getTotal();

    for (int i = 0; i < this.data.length; i++) {

        segValues[i] = (this.data[i] / Total) * -180;
    }

    return segValues;
}


private float getTotal() {

    float total = 0;

    for (float val : this.data) {
        total += val;
    }

    return total;
}

@Override
protected void onDraw(Canvas canvas) {

    if (data != null) {

        int top = getHeight() / 6;
        int left = getWidth() / 6;
        int endBottom = getHeight() - top;
        int endRight = getWidth() - left;

        rectF = new RectF(left, top, endRight, endBottom);

        float[] segment = pieSegment();

        float segStartPoint = 0;

        for (int i = 0; i < segment.length; i++) {

            Random rnd = new Random();
            int color = Color.argb(255, (int) segment[i], rnd.nextInt(256), rnd.nextInt(256));

            piePaint.setColor(color);
            canvas.drawArc(rectF, segStartPoint, segment[i], true, piePaint);
            segStartPoint += segment[i];
        }
    }
}

public void setData(float[] data) {

    this.data = data;
    invalidate();
}
公共类半平面图扩展视图{
私人油漆;
私有RectF-RectF;
私有数据;
公共图形(上下文、属性集属性){
超级(上下文,attrs);
piePaint=新油漆();
piePaint.setAntiAlias(真);
piePaint.setDither(真);
piePaint.setStyle(Paint.Style.FILL);
数据=新浮点数[]{20f、30f、10f、40f};
}
私有浮动段(){
float[]segValues=新的float[this.data.length];
float Total=getTotal();
for(int i=0;i
}