{"id":13645551,"url":"https://github.com/VladimirWrites/Lemniscate","last_synced_at":"2025-04-21T14:31:31.238Z","repository":{"id":112810194,"uuid":"79385776","full_name":"VladimirWrites/Lemniscate","owner":"VladimirWrites","description":"An easy way to make your progress view nice and sleek.","archived":false,"fork":false,"pushed_at":"2023-08-20T07:44:24.000Z","size":497,"stargazers_count":423,"open_issues_count":0,"forks_count":43,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-04T00:07:07.927Z","etag":null,"topics":["android","android-library","curves","custom","lemniscate","progress","view"],"latest_commit_sha":null,"homepage":"https://vladimirj.dev/lemniscate/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VladimirWrites.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-01-18T21:23:36.000Z","updated_at":"2024-07-14T23:18:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"392bf7d0-4187-47b5-a883-eec652216e85","html_url":"https://github.com/VladimirWrites/Lemniscate","commit_stats":null,"previous_names":["vlad1m1r990/lemniscate"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirWrites%2FLemniscate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirWrites%2FLemniscate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirWrites%2FLemniscate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirWrites%2FLemniscate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VladimirWrites","download_url":"https://codeload.github.com/VladimirWrites/Lemniscate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250070173,"owners_count":21369839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","curves","custom","lemniscate","progress","view"],"created_at":"2024-08-02T01:02:37.131Z","updated_at":"2025-04-21T14:31:30.916Z","avatar_url":"https://github.com/VladimirWrites.png","language":"Kotlin","funding_links":[],"categories":["其他"],"sub_categories":[],"readme":"![Lemniscate header](http://i.imgur.com/i9t5vUm.png)\r\n\r\n\r\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/VladimirWrites/Lemniscate/blob/master/LICENSE)\r\n[![](https://jitpack.io/v/VladimirWrites/Lemniscate.svg)](https://jitpack.io/#VladimirWrites/Lemniscate) \r\n[![API](https://img.shields.io/badge/API-14%2B-green.svg?style=flat)](https://android-arsenal.com/api?level-11) \r\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Lemniscate-green.svg?style=flat)](https://android-arsenal.com/details/1/5142)\r\n[![Build Status](https://app.bitrise.io/app/a22f82dd1a84f058.svg?token=sufo7FQOqMK9NjUqcP4CzA\u0026branch=master)](https://app.bitrise.io/app/a22f82dd1a84f058#/builds)\r\n[![codecov](https://codecov.io/gh/VladimirWrites/Lemniscate/branch/master/graph/badge.svg)](https://codecov.io/gh/VladimirWrites/Lemniscate)\r\n\r\n-----\r\n\r\nLemniscate is a library that will help you to make your progress view nice and sleek.\r\n\r\n![Lemniscate gif](http://i.imgur.com/xPRHWdv.gif)\r\n\r\nDemo\r\n-----\r\n\r\nDemo application is available on Google Play.\r\n\r\n\u003ca href='https://play.google.com/store/apps/details?id=com.vlad1m1r.lemniscate.sample'\u003e\r\n    \u003cimg alt='Get it on Google Play' src='http://i.imgur.com/tka3Exw.png'/\u003e\r\n\u003c/a\u003e\r\n\r\nThe application is intentionally simple, without any libraries, to be understandable to more developers.\r\n\r\nSetup\r\n-----\r\n\r\nAdd to your module's `build.gradle`:\r\n\r\n```groovy\r\nallprojects {\r\n    repositories {\r\n        ...\r\n        maven { url 'https://jitpack.io' }\r\n    }\r\n}\r\n```\r\n\r\nand to your app `build.gradle`:\r\n\r\n###### AndroidX\r\n```groovy\r\ndependencies {\r\n    implementation 'com.github.VladimirWrites:Lemniscate:2.0.4'\r\n}\r\n```\r\n    \r\n###### Android Support Library (Depricated)\r\n```groovy\r\ndependencies {\r\n    implementation 'com.github.VladimirWrites:Lemniscate:1.4.5'\r\n}\r\n```\r\n\r\nUsage\r\n-----\r\n\r\nExample of usage:\r\n```xml\r\n\u003ccom.vlad1m1r.lemniscate.BernoullisProgressView\r\n    android:layout_width=\"wrap_content\"\r\n    android:layout_height=\"wrap_content\"\r\n    app:duration=\"1000\"\r\n    app:hasHole=\"false\"\r\n    app:lineColor=\"@color/colorPrimary\"\r\n    app:maxLineLength=\"0.8\"\r\n    app:minLineLength=\"0.4\"\r\n    app:sizeMultiplier=\"1\"\r\n    app:strokeWidth=\"5dp\"/\u003e\r\n```\r\n\r\n###### Params available in all views:\r\n\r\n* **duration** (int) - duration of one animation cycle in millisecondes\r\n* **lineColor** (color) - color of the line\r\n* **maxLineLength** (float) - max length of line (in percentage; 1.0 is full length, 0.5 is half of length)\r\n* **minLineLength** (float) - min length of line (in percentage; 1.0 is full length, 0.5 is half of length)\r\n* **sizeMultiplier** (float) - default size of view will be multiplied with that number\r\n* **strokeWidth** (dimension) - width of line \r\n* **precision** (int) - number of points in curve calculated in one cycle\r\n\r\n#### Lemniscates\r\n* `BernoullisProgressView` - [Lemniscate of Bernoulli](https://en.wikipedia.org/wiki/Lemniscate_of_Bernoulli),\r\n* `GeronosProgressView` - [Lemniscate of Gerono](https://en.wikipedia.org/wiki/Lemniscate_of_Gerono)\r\n* `BernoullisBowProgressView`\r\n* `BernoullisSharpProgressView`\r\n\r\n###### Additional params:\r\n* **hasHole** (boolean) - hole in a middle of Lemniscates\r\n\r\n#### Roulettes\r\n* `EpitrochoidProgressView` - [Epitrochoid](https://en.wikipedia.org/wiki/Epitrochoid),\r\n* `HypotrochoidProgressView` - [Hypotrochoid](https://en.wikipedia.org/wiki/Hypotrochoid)\r\n\r\n###### Additional params:\r\n* **radiusFixed** (float) - radius of fixed circle\r\n* **radiusMoving** (float) - radius of moving circle\r\n* **distanceFromCenter** (float) -  distance from the center of the moving circle\r\n* **numberOfCycles** (float) - for one **duration** curve will be drawn on interval [0, 2 \\* mNumberOfCycles \\* π]\r\n\r\n#### Scribble\r\n* `RoundScribbleProgressView`\r\n* `ScribbleProgressView`\r\n\r\n#### Funny\r\n* `HeartProgressView` - [Heart Curve](http://mathworld.wolfram.com/HeartCurve.html),\r\n* `CannabisProgressView` - [Cannabis Curve](http://mathworld.wolfram.com/CannabisCurve.html)\r\n\r\n#### Other\r\n* `XProgressView`\r\n\r\nContributing\r\n-------\r\n\r\nWant to contribute? You are welcome! \r\nNote that all pull request should go to [`development`](https://github.com/VladimirWrites/Lemniscate/tree/development) branch.\r\n\r\nCredits\r\n-------\r\n\r\n+ [Vladimir Jovanovic](https://github.com/VladimirWrites)\r\n\r\nLicense\r\n-------\r\n\r\n    Copyright 2016 Vladimir Jovanovic\r\n\r\n    Licensed under the Apache License, Version 2.0 (the \"License\");\r\n    you may not use this file except in compliance with the License.\r\n    You may obtain a copy of the License at\r\n\r\n         http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n    Unless required by applicable law or agreed to in writing, software\r\n    distributed under the License is distributed on an \"AS IS\" BASIS,\r\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n    See the License for the specific language governing permissions and\r\n    limitations under the License.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVladimirWrites%2FLemniscate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVladimirWrites%2FLemniscate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVladimirWrites%2FLemniscate/lists"}