Android AchartEngine中圆环图的半径

Android AchartEngine中圆环图的半径,android,achartengine,Android,Achartengine,我试图在aChartengine中设置圆环图的内圈半径和外圈半径,下面是我的代码: public class MainActivity extends Activity { GraphicalView gv; RelativeLayout rl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我试图在aChartengine中设置圆环图的内圈半径和外圈半径,下面是我的代码:

public class MainActivity extends Activity {
    GraphicalView gv;
    RelativeLayout rl;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List<double[]> values1 = new ArrayList<double[]>();

        values1.add(new double[] { 15, 5 });


        gv = createIntent(values1);

        rl = (RelativeLayout) findViewById(R.id.rel);
        rl.addView(gv);    
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public GraphicalView createIntent(List<double[]> values1) {

        List<String[]> titles = new ArrayList<String[]>();

        titles.add(new String[] { " ", " " });
        int[] colors = new int[] { Color.BLUE, Color.GREEN };

        DefaultRenderer renderer = buildCategoryRenderer(colors);
        renderer.setApplyBackgroundColor(true);
        renderer.setShowLegend(false);

        renderer.setShowLabels(false);
        renderer.setStartAngle(270);
        renderer.setBackgroundColor(Color.rgb(222, 222, 200));
        renderer.setLabelsColor(Color.GRAY);



        return ChartFactory.getDoughnutChartView(MainActivity.this,
                buildMultipleCategoryDataset("Project budget", titles, values1),
                renderer);
    }

    protected MultipleCategorySeries buildMultipleCategoryDataset(String title,
            List<String[]> titles, List<double[]> values) {
        MultipleCategorySeries series = new MultipleCategorySeries(title);
        int k = 0;
        for (double[] value : values) {
            series.add(2007 + k + "", titles.get(k), value);
            k++;
        }
        return series;
    }

    protected DefaultRenderer buildCategoryRenderer(int[] colors) {
        DefaultRenderer renderer = new DefaultRenderer();
        renderer.setLabelsTextSize(15);
        renderer.setLegendTextSize(15);
        renderer.setMargins(new int[] { 20, 30, 15, 0 });
        for (int color : colors) {
            SimpleSeriesRenderer r = new SimpleSeriesRenderer();
            r.setColor(color);
            renderer.addSeriesRenderer(r);
        }
        return renderer;
    }
公共类MainActivity扩展活动{
图形视图gv;
相对寿命;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
列表值1=新的ArrayList();
值1.add(新的双精度[]{15,5});
gv=createIntent(值1);
rl=(RelativeLayout)findViewById(R.id.rel);
rl.addView(gv);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
公共图形视图createIntent(列表值1){
列表标题=新的ArrayList();
titles.add(新字符串[]{“”“”});
int[]colors=newint[]{Color.BLUE,Color.GREEN};
DefaultRenderer=buildCategoryRenderer(颜色);
renderer.setApplyBackgroundColor(true);
渲染器.setShowLegend(false);
渲染器.setShowLabels(false);
渲染器。设置起始角度(270);
setBackgroundColor(Color.rgb(222222200));
渲染器.setLabelColor(Color.GRAY);
返回ChartFactory.getDoughnutChartView(MainActivity.this,
构建多类别数据集(“项目预算”、标题、价值1),
渲染器);
}
受保护的MultipleCategorySeries构建MultipleCategoryDataSet(字符串标题,
列表标题、列表值){
多重分类系列=新的多重分类系列(标题);
int k=0;
for(双[]值:值){
series.add(2007+k+“”,titles.get(k),value);
k++;
}
返回序列;
}
受保护的DefaultRenderer buildCategoryRenderer(int[]颜色){
DefaultRenderer=新的DefaultRenderer();
setLabelsTextSize(15);
渲染器。setLegendTextSize(15);
setMargins(新的int[]{20,30,15,0});
用于(整型颜色:颜色){
SimpleSriesRender r=新的SimpleSriesRender();
r、 设置颜色(颜色);
渲染器.addSeriesRenderer(r);
}
返回渲染器;
}
但我有这个设置半径的查询,在许多搜索中我在画布上找到了半径,但在我的情况下,我没有画布


有人能告诉我如何在代码中设置半径吗?

渲染器。setScale((flaot)1.3)解决了我的问题,但内半径和外半径大约不完美。

您只需更改decCoef(DoughnutChart类中的变量)的值即可。 在DefaultRenderer中添加您自己的radius变量并创建getter和setter。 现在,在DoughnutChart中使用这个变量

比如说,

 DefaultRenderer defaultRenderer = new DefaultRenderer();
defaultRenderer.setmWidth(0.1f);
在DoughnutChart类中:

public class DoughnutChart extends RoundChart {
    private float mWidth; // make your own variable and initialize in constructor 

    public DoughnutChart(MultipleCategorySeries dataset, DefaultRenderer renderer) {
       super(null, renderer);
        mDataset = dataset;
        mWidth = renderer.getmWidth();
   }
   double decCoef =  mWidth / cLength; // change value of decCoef by using our variable.