Android-диаграмма не работает - PullRequest
0 голосов
/ 01 июля 2018

Я много пытался понять, почему мой график не генерируется. У меня есть класс HomeExchange, в котором объекты вводятся пользователем, а затем успешно сохраняются в списке.

Я хочу нарисовать круговую диаграмму, чтобы показать общее количество объектов, имеющих одинаковое значение атрибута "nrCamere" с помощью метода get "getNrCamere ()". Но это показывает только красный круг. Что я делаю не так? Спасибо

public class Grafic extends View {
public Grafic(Context context) {
    super(context);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    HashMap<Integer,Integer> contor = new HashMap<Integer, Integer>();

    for(HomeExchange hm:lista) {
        int f=0;
        try {
            f = contor.get(hm.getNrCamere());
        } catch(Exception ert) { }
        f++;
        contor.put(hm.getNrCamere(),f);
    }

    for(Map.Entry<Integer,Integer> pair:contor.entrySet()) {
        contor.put(pair.getKey(),(int)((float)pair.getValue()/(float)lista.size()*360));
    }

    int unghi=0;
    for(Map.Entry<Integer,Integer> pair : contor.entrySet()){
        ShapeDrawable shape=new ShapeDrawable(new ArcShape(unghi,pair.getValue()/ lista.size() * 360));
        unghi+=pair.getValue()/ lista.size() * 360;
        shape.setBounds(100,100,800,800);
        Random r=new Random(255);
        shape.getPaint().setColor(Color.rgb(r.nextInt(),r.nextInt(),r.nextInt()));
        shape.draw(canvas);
    }
}
}

и:

public class CentralizatorGraficActivity extends AppCompatActivity {

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

    Grafic g=new Grafic(getApplicationContext());
    setContentView(g);
}
}
...