[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7446":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":17,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},7446,"RoundCornerProgressBar","akexorcist\u002FRoundCornerProgressBar","akexorcist","[Android] Round Corner Progress Bar Library for Android","",null,"Kotlin",2586,373,65,8,0,1,3,29.72,"Apache License 2.0",false,"main",true,[25,26,27,28],"android","android-library","java","kotlin","2026-06-12 02:01:39","![Android Kotlin](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid-Kotlin-6C3FD1.svg?style=flat&logo=android)\n![Minimum SDK Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAPI-17+-brightgreen)\n[![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fcom.akexorcist\u002Fround-corner-progress-bar?color=brightgreen&label=Maven%20Central)](https:\u002F\u002Fsearch.maven.org\u002Fartifact\u002Fcom.akexorcist\u002Fround-corner-progress-bar)\n![Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202-brightgreen)\n[![Workflow Status](https:\u002F\u002Fgithub.com\u002Fakexorcist\u002FRoundCornerProgressBar\u002Factions\u002Fworkflows\u002Fandroid.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fakexorcist\u002FRoundCornerProgressBar\u002Factions)\n\n[![Google Dev Library](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGoogle%20Dev%20Library-Round%20Corner%20Progress%20Bar-blue.svg?style=flat)](https:\u002F\u002Fdevlibrary.withgoogle.com\u002Fproducts\u002Fandroid\u002Frepos\u002Fakexorcist-RoundCornerProgressBar)\n[![Android Arsenal](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid%20Arsenal-Round%20Corner%20Progress%20Bar-blue.svg?style=flat)](http:\u002F\u002Fandroid-arsenal.com\u002Fdetails\u002F1\u002F1375)\n\n# RoundCornerProgressBar\n\nRound corner is cool. Let's make your progress bar with round corner\n\n![Round Corner Progress Bar Sample](\u002Fimage\u002Fheader.jpg)\n\nColorful rounded corner progress bar\n\n# Download\n\n## Gradle\n\n```kotlin\nimplementation(\"com.akexorcist:round-corner-progress-bar:2.2.2\")\n```\n\n```groovy\nimplementation 'com.akexorcist:round-corner-progress-bar:2.2.2'\n```\n\n## Demo\n\nGo to [Google Play](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.akexorcist.roundcornerprogressbar) to download the demo app\n\n# Overview\n\n### Round Corner Progress Bar\n\nSimple round corner progress bar\n\n![Round Corner Progress Bar](\u002Fimage\u002Foverview_simple.jpg)\n\n### CenteredRoundCornerProgressBar\n\nRound corner progress bar with progress expands from the center\n\n![Centered Round Corner Progress Bar](\u002Fimage\u002Foverview_centered.jpg)\n\n### Icon Round Corner Progress Bar\n\nRound corner progress bar with heading icon\n\n![Icon Round Corner Progress Bar](\u002Fimage\u002Foverview_icon.jpg)\n\n### TextRoundCornerProgressBar\n\nRound corner progress bar with text inside the progress\n\n![Icon Round Corner Progress Bar](\u002Fimage\u002Foverview_text.jpg)\n\n### IndeterminateRoundCornerProgressBar and IndeterminateCenteredRoundCornerProgressBar\n\nSimple round corner progress bar and centered round corner progress bar with indeterminate animation\n\n![Indeterminate Round Corner Progress Bar and Indeterminate Centered Round Corner Progress Bar](\u002Fimage\u002Foverview_indeterminate.gif)\n\n# Feature\n\n### Standard Features\n\n- Primary progress and secondary progress supported\n- Primary progress, secondary progress and progress background color are customizable\n- Customize your own progress background padding\n- Customize your own progress's corner radius\n- Reversing progress bar supported\n- Progress bar with gradient color? Yes!\n- Progress change animation? Absolutely yes!\n\n### Component Features\n\n- Progress expanding from center with `CenteredRoundCornerProgressBar`\n- Heading icon supported with `IconRoundCornerProgressBar`\n- Text inside progress supported with `TextRoundCornerProgressBar`\n- Indeterminate animation supported with `IndeterminateRoundCornerProgressBar` or `IndeterminateCenteredRoundCornerProgressBar`\n\n# Usage\n\nFor using custom attribute of progress bar, define 'app' namespace as root view attribute in your layout\n\n```xml\nxmlns:app=\"http:\u002F\u002Fschemas.android.com\u002Fapk\u002Fres-auto\"\n```\n\n## RoundCornerProgressBar\n\n### Example\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.IconRoundCornerProgressBar\n    android:layout_width=\"260dp\"\n    android:layout_height=\"30dp\"\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcBackgroundPadding=\"2dp\"\n    app:rcMax=\"100\"\n    app:rcProgress=\"40\"\n    app:rcProgressColor=\"#EF5350\"\n    app:rcRadius=\"10dp\"\n    app:rcSecondaryProgress=\"60\"\n    app:rcSecondaryProgressColor=\"#40EF5350\" \u002F>\n```\n\n![Round Corner Progress Bar](\u002Fimage\u002Fsample_simple.jpg)\n\n### Layout XML\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.RoundCornerProgressBar\n    app:rcProgress=\"float\"\n    app:rcSecondaryProgress=\"float\"\n    app:rcMax=\"float\"\n    app:rcRadius=\"dimension\"\n    app:rcBackgroundPadding=\"dimension\"\n    app:rcReverse=\"boolean\"\n    app:rcProgressColor=\"color\"\n    app:rcSecondaryProgressColor=\"color\"\n    app:rcBackgroundColor=\"color\"\n    app:rcAnimationEnable=\"boolean\"\n    app:rcAnimationSpeedScale=\"float\" \u002F>\n```\n\n### Public Methods\n\n```kotlin\n\u002F\u002F Progress\nfun getMax(): Float\nfun setMax(max: Float)\nfun setMax(max: Int)\nfun getProgress(): Float\nfun setProgress(progress: Int)\nfun setProgress(progress: Float)\nfun getSecondaryProgress(): Float\nfun setSecondaryProgress(secondaryProgress: Int)\nfun setSecondaryProgress(secondaryProgress: Float)\n\n\u002F\u002F Dimension\nfun getRadius(): Int\nfun setRadius(radius: Int)\nfun getPadding(): Int\nfun setPadding(padding: Int)\nfun getLayoutWidth(): Float\n\n\u002F\u002F Animation\nfun enableAnimation()\nfun disableAnimation()\nfun getAnimationSpeedScale(): Float\nfun setAnimationSpeedScale(scale: Float)\nfun isProgressAnimating(): Boolean\nfun isSecondaryProgressAnimating(): Boolean\n\n\u002F\u002F Reversing Progress\nfun isReverse(): Boolean\nfun setReverse(isReverse: Boolean)\n\n\u002F\u002F Color\nfun getProgressBackgroundColor(): Int\nfun setProgressBackgroundColor(color: Int)\nfun getProgressColor(): Int\nfun setProgressColor(color: Int)\nfun getProgressColors(): List\u003CInt>\nfun setProgressColors(colors: List\u003CInt>)\nfun getSecondaryProgressColor(): Int\nfun setSecondaryProgressColor(color: Int)\nfun getSecondaryProgressColors(): List\u003CInt>\nfun setSecondaryProgressColors(colors: List\u003CInt>)\n\n\u002F\u002F Listener\nfun setOnProgressChangedListener(listener: OnProgressChangedListener)\n```\n\n## CenteredRoundCornerProgressBar\n\nSame as RoundCornerProgressBar but reversing does not supported.\n\n### Example\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.CenteredRoundCornerProgressBar\n    android:layout_width=\"260dp\"\n    android:layout_height=\"30dp\"\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcBackgroundPadding=\"2dp\"\n    app:rcMax=\"100\"\n    app:rcProgress=\"40\"\n    app:rcProgressColor=\"#EF5350\"\n    app:rcRadius=\"10dp\"\u002F>\n```\n\n![Centerd Round Corner Progress Bar](\u002Fimage\u002Fsample_centered.jpg)\n\n### Layout XML\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.CenteredRoundCornerProgressBar\n    app:rcProgress=\"float\"\n    app:rcSecondaryProgress=\"float\"\n    app:rcMax=\"float\"\n    app:rcRadius=\"dimension\"\n    app:rcBackgroundPadding=\"dimension\"\n    app:rcProgressColor=\"color\"\n    app:rcSecondaryProgressColor=\"color\"\n    app:rcBackgroundColor=\"color\"\n    app:rcAnimationEnable=\"boolean\"\n    app:rcAnimationSpeedScale=\"float\" \u002F>\n```\n\n### Public Methods\n\n```kotlin\n\u002F\u002F Progress\nfun getMax(): Float\nfun setMax(max: Float)\nfun setMax(max: Int)\nfun getProgress(): Float\nfun setProgress(progress: Int)\nfun setProgress(progress: Float)\nfun getSecondaryProgress(): Float\nfun setSecondaryProgress(secondaryProgress: Int)\nfun setSecondaryProgress(secondaryProgress: Float)\n\n\u002F\u002F Dimension\nfun getRadius(): Int\nfun setRadius(radius: Int)\nfun getPadding(): Int\nfun setPadding(padding: Int)\nfun getLayoutWidth(): Float\n\n\u002F\u002F Animation\nfun enableAnimation()\nfun disableAnimation()\nfun getAnimationSpeedScale(): Float\nfun setAnimationSpeedScale(scale: Float)\nfun isProgressAnimating(): Boolean\nfun isSecondaryProgressAnimating(): Boolean\n\n\u002F\u002F Color\nfun getProgressBackgroundColor(): Int\nfun setProgressBackgroundColor(color: Int)\nfun getProgressColor(): Int\nfun setProgressColor(color: Int)\nfun getProgressColors(): List\u003CInt>\nfun setProgressColors(colors: List\u003CInt>)\nfun getSecondaryProgressColor(): Int\nfun setSecondaryProgressColor(color: Int)\nfun getSecondaryProgressColors(): List\u003CInt>\nfun setSecondaryProgressColors(colors: List\u003CInt>)\n\n\u002F\u002F Listener\nfun setOnProgressChangedListener(listener: OnProgressChangedListener)\n```\n\n## IconRoundCornerProgressBar\n\nIcon size is required for this progress bar. Use `wrap_content` for `layout_height` is recommended.\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.IconRoundCornerProgressBar\n        android:layout_height=\"wrap_content\"\n        app:rcIconSize=\"40dp\"\n        ... \u002F>\n```\n\n### Example\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.IconRoundCornerProgressBar\n    android:layout_width=\"260dp\"\n    android:layout_height=\"wrap_content\"\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcBackgroundPadding=\"2dp\"\n    app:rcIconBackgroundColor=\"#00796B\"\n    app:rcIconPadding=\"5dp\"\n    app:rcIconSize=\"40dp\"\n    app:rcIconSrc=\"@drawable\u002Fic_android\"\n    app:rcMax=\"150\"\n    app:rcProgress=\"90\"\n    app:rcProgressColor=\"#EF5350\"\n    app:rcRadius=\"5dp\"\n    app:rcReverse=\"true\" \u002F>\n```\n\n![Icon Round Corner Progress Bar](\u002Fimage\u002Fsample_icon.jpg)\n\n### Layout XML\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.IconRoundCornerProgressBar\n        app:rcProgress=\"float\"\n        app:rcSecondaryProgress=\"float\"\n        app:rcMax=\"float\"\n        app:rcRadius=\"dimension\"\n        app:rcBackgroundPadding=\"dimension\"\n        app:rcReverse=\"boolean\"\n        app:rcProgressColor=\"color\"\n        app:rcSecondaryProgressColor=\"color\"\n        app:rcBackgroundColor=\"color\"\n        app:rcAnimationEnable=\"boolean\"\n        app:rcAnimationSpeedScale=\"float\"\n        app:rcIconSrc=\"reference\"\n        app:rcIconSize=\"dimension\"\n        app:rcIconWidth=\"dimension\"\n        app:rcIconHeight=\"dimension\"\n        app:rcIconPadding=\"dimension\"\n        app:rcIconPaddingLeft=\"dimension\"\n        app:rcIconPaddingRight=\"dimension\"\n        app:rcIconPaddingTop=\"dimension\"\n        app:rcIconPaddingBottom=\"dimension\"\n        app:rcIconBackgroundColor=\"color\" \u002F>\n```\n\n### Public Methods\n\n```kotlin\n\u002F\u002F Progress\nfun getMax(): Float\nfun setMax(max: Float)\nfun setMax(max: Int)\nfun getProgress(): Float\nfun setProgress(progress: Int)\nfun setProgress(progress: Float)\nfun getSecondaryProgress(): Float\nfun setSecondaryProgress(secondaryProgress: Int)\nfun setSecondaryProgress(secondaryProgress: Float)\n\n\u002F\u002F Dimension\nfun getRadius(): Int\nfun setRadius(radius: Int)\nfun getPadding(): Int\nfun setPadding(padding: Int)\nfun getLayoutWidth(): Float\n\nfun getIconSize(): Int\nfun setIconSize(size: Int)\nfun getIconPadding(): Int\nfun setIconPadding(padding: Int)\nfun getIconPaddingLeft(): Int\nfun setIconPaddingLeft(padding: Int)\nfun getIconPaddingTop(): Int\nfun setIconPaddingTop(padding: Int)\nfun getIconPaddingRight(): Int\nfun setIconPaddingRight(padding: Int)\nfun getIconPaddingBottom(): Int\nfun setIconPaddingBottom(padding: Int)\n\n\u002F\u002F Animation\nfun enableAnimation()\nfun disableAnimation()\nfun getAnimationSpeedScale(): Float\nfun setAnimationSpeedScale(scale: Float)\nfun isProgressAnimating(): Boolean\nfun isSecondaryProgressAnimating(): Boolean\n\n\u002F\u002F Reversing Progress\nfun isReverse(): Boolean\nfun setReverse(isReverse: Boolean)\n\n\u002F\u002F Color\nfun getProgressBackgroundColor(): Int\nfun setProgressBackgroundColor(color: Int)\nfun getProgressColor(): Int\nfun setProgressColor(color: Int)\nfun getProgressColors(): List\u003CInt>\nfun setProgressColors(colors: List\u003CInt>)\nfun getSecondaryProgressColor(): Int\nfun setSecondaryProgressColor(color: Int)\nfun getSecondaryProgressColors(): List\u003CInt>\nfun setSecondaryProgressColors(colors: List\u003CInt>)\nfun getColorIconBackground(): Int\nfun setIconBackgroundColor(color: Int)\n\n\u002F\u002F Icon\nfun getIconImageResource(): Int\nfun setIconImageResource(resId: Int)\nfun getIconImageBitmap(): Birmap\nfun setIconImageBitmap(bitmap: Bitmap)\nfun getIconImageDrawable(): Drawable\nfun setIconImageDrawable(drawable: Drawable)\n\n\u002F\u002F Listener\nfun setOnProgressChangedListener(listener: OnProgressChangedListener)\nfun setOnIconClickListener(listener: OnIconClickListener)\n```\n\n## TextRoundCornerProgressBar\n\n### Example\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar\n    android:layout_width=\"260dp\"\n    android:layout_height=\"30dp\"\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcBackgroundPadding=\"2dp\"\n    app:rcMax=\"100\"\n    app:rcProgress=\"40\"\n    app:rcProgressColor=\"#EF5350\"\n    app:rcRadius=\"80dp\"\n    app:rcReverse=\"true\"\n    app:rcSecondaryProgress=\"60\"\n    app:rcSecondaryProgressColor=\"#40009688\"\n    app:rcTextPositionPriority=\"outside\"\n    app:rcTextProgress=\"40\"\n    app:rcTextProgressColor=\"#111111\" \u002F>\n```\n\n![Text Round Corner Progress Bar](\u002Fimage\u002Fsample_text.jpg)\n\n### Layout XML\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar\n        app:rcProgress=\"float\"\n        app:rcSecondaryProgress=\"float\"\n        app:rcMax=\"float\"\n        app:rcRadius=\"dimension\"\n        app:rcBackgroundPadding=\"dimension\"\n        app:rcReverse=\"boolean\"\n        app:rcProgressColor=\"color\"\n        app:rcSecondaryProgressColor=\"color\"\n        app:rcBackgroundColor=\"color\"\n        app:rcAnimationEnable=\"boolean\"\n        app:rcAnimationSpeedScale=\"float\"\n        app:rcTextProgressColor=\"color\"\n        app:rcTextProgressSize=\"dimension\"\n        app:rcTextProgressMargin=\"dimension\"\n        app:rcTextProgress=\"String\"\n        app:rcTextInsideGravity=\"start|end\"\n        app:rcTextOutsideGravity=\"start|end\"\n        app:rcTextPositionPriority=\"inside|outside\" \u002F>\n```\n\n### Public Methods\n\n```kotlin\n\u002F\u002F Progress\nfun getMax(): Float\nfun setMax(max: Float)\nfun setMax(max: Int)\nfun getProgress(): Float\nfun setProgress(progress: Int)\nfun setProgress(progress: Float)\nfun getSecondaryProgress(): Float\nfun setSecondaryProgress(secondaryProgress: Int)\nfun setSecondaryProgress(secondaryProgress: Float)\n\n\u002F\u002F Dimension\nfun getRadius(): Int\nfun setRadius(radius: Int)\nfun getPadding(): Int\nfun setPadding(padding: Int)\nfun getLayoutWidth(): Float\nfun getTextProgressSize(): Int\nfun setTextProgressSize(size: Int)\nfun getTextProgressMargin(): Int\nfun setTextProgressMargin(margin: Int)\n\n\u002F\u002F Animation\nfun enableAnimation()\nfun disableAnimation()\nfun getAnimationSpeedScale(): Float\nfun setAnimationSpeedScale(scale: Float)\nfun isProgressAnimating(): Boolean\nfun isSecondaryProgressAnimating(): Boolean\n\n\u002F\u002F Reversing Progress\nfun isReverse(): Boolean\nfun setReverse(isReverse: Boolean)\n\n\u002F\u002F Color\nfun getProgressBackgroundColor(): Int\nfun setProgressBackgroundColor(color: Int)\nfun getProgressColor(): Int\nfun setProgressColor(color: Int)\nfun getProgressColors(): List\u003CInt>\nfun setProgressColors(colors: List\u003CInt>)\nfun getSecondaryProgressColor(): Int\nfun setSecondaryProgressColor(color: Int)\nfun getSecondaryProgressColors(): List\u003CInt>\nfun setSecondaryProgressColors(colors: List\u003CInt>)\nfun getTextProgressColor(): Int\nfun setTextProgressColor(color: Int)\n\n\u002F\u002F Text\nfun getProgressText(): String\nfun setProgressText(text: String)\n\n\u002F\u002F Position\nfun getTextPositionPriority(): Int\nfun setTextPositionPriority(priority: Int)\nfun getTextInsideGravity(): Int\nfun setTextInsideGravity(gravity: Int)\nfun getTextOutsideGravity(): Int\nfun setTextOutsideGravity(gravity: Int)\n\n\u002F\u002F Listener\nfun setOnProgressChangedListener(listener: OnProgressChangedListener)\n```\n\n## IndeterminateRoundCornerProgressBar\n\n### Example\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.indeterminate.IndeterminateRoundCornerProgressBar\n    android:layout_width=\"260dp\"\n    android:layout_height=\"10dp\"\n    app:rcAnimationSpeedScale=\"3\"\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcProgressColor=\"#EF5350\" \u002F>\n```\n\n![Indeterminate Round Corner Progress Bar](\u002Fimage\u002Fsample_indeterminate.gif)\n\n### Layout XML\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.indeterminate.IndeterminateRoundCornerProgressBar\n        app:rcRadius=\"dimension\"\n        app:rcBackgroundPadding=\"dimension\"\n        app:rcReverse=\"boolean\"\n        app:rcProgressColor=\"color\"\n        app:rcSecondaryProgressColor=\"color\"\n        app:rcBackgroundColor=\"color\"\n        app:rcAnimationSpeedScale=\"float\" \u002F>\n```\n\n### Public Methods\n\n```kotlin\n\u002F\u002F Dimension\nfun getRadius(): Int\nfun setRadius(radius: Int)\nfun getPadding(): Int\nfun setPadding(padding: Int)\nfun getLayoutWidth(): Float\n\n\u002F\u002F Animation\nfun getAnimationSpeedScale(): Float\nfun setAnimationSpeedScale(scale: Float)\n\n\u002F\u002F Reversing Progress\nfun isReverse(): Boolean\nfun setReverse(isReverse: Boolean)\n\n\u002F\u002F Color\nfun getProgressBackgroundColor(): Int\nfun setProgressBackgroundColor(color: Int)\nfun getProgressColor(): Int\nfun setProgressColor(color: Int)\nfun getProgressColors(): List\u003CInt>\nfun setProgressColors(colors: List\u003CInt>)\nfun getSecondaryProgressColor(): Int\nfun setSecondaryProgressColor(color: Int)\nfun getSecondaryProgressColors(): List\u003CInt>\nfun setSecondaryProgressColors(colors: List\u003CInt>)\n```\n\n## IndeterminateCenteredRoundCornerProgressBar\n\nSame as IndeterminateRoundCornerProgressBar\n\n### Example\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.indeterminate.IndeterminateCenteredRoundCornerProgressBar\n    android:layout_width=\"260dp\"\n    android:layout_height=\"10dp\"\n    app:rcAnimationSpeedScale=\"0.75\"\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcProgressColor=\"#EF5350\" \u002F>\n```\n\n![Indeterminate Centered Round Corner Progress Bar](\u002Fimage\u002Fsample_indeterminate_centered.gif)\n\n### Layout XML\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.IndeterminateCenteredRoundCornerProgressBar\n        app:rcRadius=\"dimension\"\n        app:rcBackgroundPadding=\"dimension\"\n        app:rcReverse=\"boolean\"\n        app:rcProgressColor=\"color\"\n        app:rcSecondaryProgressColor=\"color\"\n        app:rcBackgroundColor=\"color\"\n        app:rcAnimationSpeedScale=\"float\" \u002F>\n```\n\n### Public Methods\n\n```kotlin\n\u002F\u002F Dimension\nfun getRadius(): Int\nfun setRadius(radius: Int)\nfun getPadding(): Int\nfun setPadding(padding: Int)\nfun getLayoutWidth(): Float\n\n\u002F\u002F Animation\nfun getAnimationSpeedScale(): Float\nfun setAnimationSpeedScale(scale: Float)\n\n\u002F\u002F Reversing Progress\nfun isReverse(): Boolean\nfun setReverse(isReverse: Boolean)\n\n\u002F\u002F Color\nfun getProgressBackgroundColor(): Int\nfun setProgressBackgroundColor(color: Int)\nfun getProgressColor(): Int\nfun setProgressColor(color: Int)\nfun getProgressColors(): List\u003CInt>\nfun setProgressColors(colors: List\u003CInt>)\nfun getSecondaryProgressColor(): Int\nfun setSecondaryProgressColor(color: Int)\nfun getSecondaryProgressColors(): List\u003CInt>\nfun setSecondaryProgressColors(colors: List\u003CInt>)\n```\n\n## Apply Gradient Progress Bar Color\n\nGradient color for progress bar must be in int array resource. At least 2 colors.\n\n```xml\n\u003C!-- Color Resource -->\n\u003Cresources>\n    \u003Carray name=\"sample_progress_gradient\">\n        \u003Citem>#009688\u003C\u002Fitem>\n        \u003Citem>#80CBC4\u003C\u002Fitem>\n    \u003C\u002Farray>\n\u003C\u002Fresources>\n\n\u003C!-- Layout -->\n\u003Ccom.akexorcist.roundcornerprogressbar.RoundCornerProgressBar\n    ...\n    app:rcBackgroundColor=\"#0A000000\"\n    app:rcBackgroundPadding=\"4dp\"\n    app:rcMax=\"100\"\n    app:rcProgress=\"50\"\n    app:rcProgressColors=\"@array\u002Fsample_progress_gradient\"\n    app:rcRadius=\"30dp\" \u002F>\n```\n\n![Gradient Progress Bar Color](\u002Fimage\u002Fsample_gradient.jpg)\n\nProgress bar does not clipped when size changed. So the gradient color will fully display without clipping also.\n\n## Apply Progress Change Animation\n\nAnimation when progress change is disabled by default (exclude `IndeterminateProgressBar` and `IndeterminateCenteredProgressBar`).\n\nSo you have to enable the animation by XML attribute or programmatically\n\n```xml\n\u003Ccom.akexorcist.roundcornerprogressbar.RoundCornerProgressBar\n    ...\n    app:rcAnimationEnable=\"true\"\n    app:rcAnimationSpeedScale=\"1\" \u002F>\n\n```\n\nWhen progress changed, the animation will applied automatically.\n\n![Comparison Between With\u002FWithout Animation](\u002Fimage\u002Fanimation_comparison.gif)\n\nAnimation speed scale's value is float between 0.2 - 5.0 (default is 1.0). Higher for slow down the animation, lower for speed up.\n\n# What's Next\n\n- IconTextRoundCornerProgressBar ([#69](https:\u002F\u002Fgithub.com\u002Fakexorcist\u002FAndroid-RoundCornerProgressBar\u002Fpull\u002F69))\n- UI Preview improvement\n\n# Known Issues\n\n- Incorrect progress showing in `CenteredRoundCornerProgressBar` with 1%-2% value\n- Incorrect text's width in `TextRoundCornerProgressBar` when `outside` priority and value close to 100%\n- `setProgress(progress: Int)` does not update text position\n\n# Change Log\n\nSee [CHANGELOG.md](CHANGELOG.md)\n\n# Migration\n\nSee [MIGRATION.md](MIGRATION.md)\n\n# Licence\n\nCopyright 2023 Akexorcist\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:\n\nhttp:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n","RoundCornerProgressBar 是一个为 Android 应用设计的带有圆角效果的进度条库。它支持多种样式，包括基础圆角进度条、从中心扩展的进度条、带图标的进度条以及在进度条内部显示文本等。此外，该库还允许开发者自定义主次进度颜色、背景填充、圆角半径等属性，并且提供了渐变色和动画过渡功能。适用于需要美化用户界面或提升用户体验的各类 Android 项目中，特别是在那些注重细节设计的应用程序里。",2,"2026-06-11 03:12:21","top_language"]