Pull to refresh

Comments 8

Уууу, это просто огонь!!! Спасибо, а то однотипный шлак который в последнее время здесь выдают за кастомные вью немного поднадоел. Единственное сам текст (список) наверное было бы проще рисовать не внутри кастомной вью, а руками самостоятельно разработчику - не всем нужны текста, кому-то нужна только диаграмма, кто-то текст захочет кастомизировать. С другой стороны это вью, а не compose, можно и отнаследоваться при желании (но тот же drawtext private а не protected)

Для полноты картины только touchevents не хватило, но и так очень круто!!!

Благодарю за лесный комментарий. Я сам устал от того, что на ру сегменте мало материала по отрисовке чего-то своего. Наверное, поэтому возникло огромное желание написать статью, чтобы каждый смог это повторить без каких-либо проблем.

По поводу touch ивентов я тоже задумывался: показать как можно их использовать, но тогда статья была бы точно на час чтения. Думаю, что выложу продолжение с более углубленной информацией по теме.

Ну в touchevents там то ничего сложного по сути, но вот математики будет много - градус в который попали, расстояние.

Если планируете ещё писать, можно про кастомные view group, про них информации ещё меньше. А там ведь всякие dispatchdraw, dispatchtouchevent, layout larams свои, то же есть о чем рассказать. Да и позволяют они тоже очень много.

paint.strokeCap = Paint.Cap.ROUND;

Это свойство не работает на некоторых мобильниках, линии не закругляются.

Как вы подбирали цвета?

Не знал, что данное свойство не работает на некоторых экранах, хотя тестил вроде бы на всех возможных. Благодарю, что заметили и указали на это, постараюсь исправить так, чтобы можно использовать во всех случаях.

По поводу цветов, я подбирал цвета самостоятельно. Главное в выборе цветов ориентироваться либо на контраст, либо на монотоность.

Спасибо, что прокомментировали статью. Надеюсь, что ответил на ваш вопрос сполна.

AnalyticalPieChartModel это data class, но при этом в нем есть свойство paint:Paint, у которого не предопределены методы equals/hashcode - это может привести к ошибкам, и возможности data класса не были использованы в статье.

более того paint: Paint перезаписывается в init блоке. его вообще нужно вынести из конструктора

Sign up to leave a comment.

Articles