Форум программистов, компьютерный форум, киберфорум
Наши страницы

Нарисовать круговую диаграмму с разной высотой для каждой части - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не работает цик(или indexOf() http://www.cyberforum.ru/android-dev/thread1629142.html
Суть кода ниже в том, чтобы находить в строке сочетания символов "ccc" и в них вставлять другой символ. Но программа исправляет только одно сочетание ccc(например в строке "сссaccc" получится...
Программирование Android Автокомплит + GoogleMaps У меня есть отдельно приложения, которые: первое приложение - осуществляет автокомплит адресов(имеет поле, в которое пользователь вводит адрес и ему выпадают подсказки адресов) то есть имеет ключ от... http://www.cyberforum.ru/android-dev/thread1629123.html
Программирование Android Разблокировка функций в приложении
Допустим купили в моем приложении допфункционал. Само приложение в целом работает офлайн. Биллинг вернул true, все хорошо, все счастливы, функции разблокированы. Теперь закрываем и заново открываем...
Программирование Android Как не допустить создание потока еще раз?
Задача. Выполнять действие в фоне даже после закрытия приложения (в отдельном потоке) - работает. Но вот после повторного запуска приложения я пытаюсь проверить запущен ли поток и если нет -...
Программирование Android Вывести время в toolbar http://www.cyberforum.ru/android-dev/thread1629003.html
Привет. Извиняйте за нубский вопрос, но как самое просто вывести текущее время. Как разместить\получить и отформатировать время я знаю, вопрос в том нет ли уже готовыз каких то простых механизмов...
Программирование Android Как можно сделать линию толще (Google Maps) Я рисую путь на Google Map между двумя точками как сделать линию соединяющую эти две точки толще?? подробнее

Показать сообщение отдельно
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
30.12.2015, 17:24
dajver, все точно так же как и сейчас, но вместо одного круга нужно создать несколько (по количеству частей) и желательно их создавать в конструкторе, можно даже просто пустые (нужно чтобы память на них сразу выделилась один раз, а не выделялась при каждой перерисовке). Потом уже в onDraw задаем им всем один центр (тот же, который сейчас у rectf), ну и радиусы каждому по вкусу. И рисуем слайсы точно тем же кодом
Java
1
2
3
4
5
for (int i = 0; i < scaledValues.length; i++) {
     slicePaint.setColor(sliceClrs[i]);
     canvas.drawArc(rectf, sliceStartPoint, scaledValues[i], true, slicePaint);
     sliceStartPoint += scaledValues[i];
}
Только вместо rectf в каждой итерации цикла подставляем нужный RectF. Т.е. получается что рисуем на каждый RectF только один кусок, но выглядеть будет будто это целый круг, но у каждого слайса своя высота.

Добавлено через 35 секунд
Хотя можно даже один RectF использовать, просто у него перед отрисовкой частей менять радиус.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.