Я много пытался понять, почему мой график не генерируется. У меня есть класс 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);
}
}