{"id":24714453,"url":"https://github.com/ml-opensource/clippedimageview","last_synced_at":"2026-05-21T05:06:53.657Z","repository":{"id":83709885,"uuid":"104007885","full_name":"ml-opensource/ClippedImageView","owner":"ml-opensource","description":"Simple Android widgets to support customizable clip paths","archived":false,"fork":false,"pushed_at":"2019-10-15T01:08:13.000Z","size":133,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-03-22T08:15:56.426Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/ml-opensource.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-19T00:54:35.000Z","updated_at":"2024-05-02T06:40:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"52f88241-a12c-4245-9281-3aba9070771c","html_url":"https://github.com/ml-opensource/ClippedImageView","commit_stats":null,"previous_names":["ml-opensource/clippedimageview"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ml-opensource/ClippedImageView","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2FClippedImageView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2FClippedImageView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2FClippedImageView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2FClippedImageView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ml-opensource","download_url":"https://codeload.github.com/ml-opensource/ClippedImageView/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-opensource%2FClippedImageView/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33289548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T02:57:32.698Z","status":"ssl_error","status_checked_at":"2026-05-21T02:57:31.990Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-01-27T08:16:39.298Z","updated_at":"2026-05-21T05:06:53.643Z","avatar_url":"https://github.com/ml-opensource.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Auto-masking Views for Android\n==============================\n\nThese custom ImageViews use their backgrounds as masks to clip their\nforegrounds. Many libraries limit themselves to just a couple of simple\nshapes: circles, ovals, squircles, teardrops, and (of course) rectangles.\n\nWith this, you can use _any_ transparency-sporting drawable as a mask -\neven vector assets!\n\nThe code used for this library was derived from work by @fanrunqi on\ntheir [AvatarImageView][0].\n\nPrior to 9/2017 these files were shipped as part of [CutoutViewIndicator][1]\n\nWho would use this?\n-------------------\nThis library is aimed at any android app loading images into\nImageViews (or ImageButtons, etc...). We support all the big image-loading\nlibraries (Glide, Picasso, Volley) as well as standard Android framework\nmethods (`android:src`, `setImageDrawable`, `app:srcCompat`).\n\nDo I need to worry about anything?\n----------------------------------\nAll you need to do is assign both a foreground and a background, and the\n`ClippedImageView` will handle the rest. It won't draw anything otherwise.\n\n`TextClippedImageView` requires an additional step: you'll need to set\na 'text mask'.\n\nSo, uh, what do clipping and masking even mean? in this context?\n----------------------------------------------------------------\nClipping is the act of removing all visible parts of an image outside a\ncertain boundary. That boundary is usually called the 'clip bounds', and\nan image made up entirely of area outside the clip bounds is called a 'mask'.\n\n# Code Snippets\nGradle module file (make sure you don't add these to the 'buildscript' block):\n```groovy\nrepositories {\n    // ...\n    maven { url \"https://jitpack.io\" }\n}\n// ...\ndependencies {\n    // ...\n    implementation 'com.github.fuzz-productions:ClippedImageView:v0.2.0'\n}\n```\n\nSample XML:\n```\n\u003ccom.fuzz.indicator.widget.ClippedImageView\n    android:id=\"@+id/civ\"\n    android:layout_height=\"30dp\"\n    android:layout_width=\"30dp\"\n    android:src=\"@drawable/foreground\"\n    android:background=\"@drawable/background\"\n    /\u003e\n\n\u003ccom.fuzz.indicator.widget.TextClippedImageView\n    android:id=\"@+id/text_clipped_view\"\n    android:layout_height=\"30dp\"\n    android:layout_width=\"30dp\"\n    android:src=\"@drawable/foreground\"\n    android:background=\"@drawable/background\"\n    app:clip_text_mask=\"6\"\n    /\u003e\n```\nJava:\n```\nClippedImageView civ = // ...\nciv.setBackgroundResource(R.drawable.background);\nciv.setImageResource(R.drawable.foreground);\n\nTextClippedImageview textClippedView = // ...\nif (!textClippedView.hasTextMask()) {\n    textClippedView.setTextPathMask(\"Some Text\");\n}\n\n// Optional: apply your own text styles\nTextPaint paint = // ...\ntextClippedView.copyTextPaintPropertiesFrom(paint);\n```\nKotlin:\n```\nval civ: ClippedImageView = // ...\nciv.setBackgroundResource(R.drawable.background)\nciv.setImageResource(R.drawable.foreground)\n\nval textClippedView: TextClippedImageView = // ...\nif (!textClippedView.hasTextMask()) {\n    textClippedView.setTextPathMask(\"Some Text\")\n}\n\n// Optional: apply your own text styles\nval paint: TextPaint = // ...\ntextClippedView.copyTextPaintPropertiesFrom(paint)\n```\n\n# License\n```\nCopyright 2016 fanrunqi\n\nModifications Copyright 2016-2019 Philip Cohn-Cort\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n\n [0]: https://github.com/fanrunqi/AvatarImageView\n [1]: https://github.com/fuzz-productions/CutoutViewIndicator\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml-opensource%2Fclippedimageview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fml-opensource%2Fclippedimageview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml-opensource%2Fclippedimageview/lists"}