{"id":3485,"url":"https://github.com/mreram/ShowCaseView","last_synced_at":"2025-07-31T13:30:26.926Z","repository":{"id":44651348,"uuid":"118187305","full_name":"mreram/ShowCaseView","owner":"mreram","description":":flashlight:The ShowcaseView library is designed to highlight and showcase specific parts of apps to the user with an attractive and flat overlay.","archived":true,"fork":false,"pushed_at":"2024-02-13T16:07:18.000Z","size":5118,"stargazers_count":589,"open_issues_count":26,"forks_count":128,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-11-11T16:45:12.610Z","etag":null,"topics":["android","customview","guide","guideline","guideview","intro","introduction","onboarder","onboarding","showcase","showcaseview","showcaseview-library","tour","tour-guide","tour-guide-app"],"latest_commit_sha":null,"homepage":"","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/mreram.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}},"created_at":"2018-01-19T22:47:49.000Z","updated_at":"2024-11-10T13:46:09.000Z","dependencies_parsed_at":"2024-04-22T04:02:22.367Z","dependency_job_id":null,"html_url":"https://github.com/mreram/ShowCaseView","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mreram%2FShowCaseView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mreram%2FShowCaseView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mreram%2FShowCaseView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mreram%2FShowCaseView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mreram","download_url":"https://codeload.github.com/mreram/ShowCaseView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228248455,"owners_count":17891447,"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","customview","guide","guideline","guideview","intro","introduction","onboarder","onboarding","showcase","showcaseview","showcaseview-library","tour","tour-guide","tour-guide-app"],"created_at":"2024-01-05T20:16:42.838Z","updated_at":"2024-12-05T06:31:27.199Z","avatar_url":"https://github.com/mreram.png","language":"Java","funding_links":[],"categories":["Libraries"],"sub_categories":["GUI"],"readme":"# :flashlight:ShowCaseView:flashlight:\n[![Release](https://jitpack.io/v/mreram/ShowCaseView.svg)](https://jitpack.io/#mreram/ShowCaseView)\n[![APK](https://img.shields.io/badge/APK-Demo-brightgreen.svg)](https://github.com/mreram/ShowCaseView/raw/master/demo-flatShowCaseView.apk)\n[![API](https://img.shields.io/badge/API-14%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=11) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-FlatShowCaseView-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/6713)\n[![awesome-android](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/JStumpp/awesome-android#gui)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./screenshots/Screenshot_2018-01-24-16-41-38.png\" width=\"200\"/\u003e\n\u003cimg src=\"./screenshots/Screenshot_2018-01-24-16-53-17.png\" width=\"200\"/\u003e\n\u003cimg src=\"./screenshots/Screenshot_2018-01-24-16-52-03.png\" width=\"200\"/\u003e\n\n\u003c/p\u003e\n\n## How to use:question:\n\nSample usage in your activity\n```java\nnew GuideView.Builder(this)\n    .setTitle(\"Guide Title Text\")\n    .setContentText(\"Guide Description Text\\n .....Guide Description Text\\n .....Guide Description Text .....\")\n    .setGravity(Gravity.auto) //optional\n    .setDismissType(DismissType.anywhere) //optional - default DismissType.targetView\n    .setTargetView(view)\n    .setContentTextSize(12)//optional\n    .setTitleTextSize(14)//optional\n    .build()\n    .show();\n```\n\u003cimg src=\"./screenshots/sample1.gif\" width=\"300\"\u003e\n\n## Installation\n\t\nmaven:\n\n```xml\n\u003crepositories\u003e\n   \u003crepository\u003e\n     \u003cid\u003ejitpack.io\u003c/id\u003e\n     \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n   \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\tStep 2. Add the dependency\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.mreram\u003c/groupId\u003e\n    \u003cartifactId\u003eshowcaseview\u003c/artifactId\u003e\n    \u003cversion\u003e1.4.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\ngradle:\n\t\nAdd it in your root build.gradle at the end of repositories:\n```groovy\t\nallprojects {\n\trepositories {\n\t\t...\n\t\tmaven { url 'https://jitpack.io' }\n\t}\n}\n```\t\n\tStep 2. Add the dependency\n```groovy\t\nimplementation 'com.github.mreram:showcaseview:1.4.1'\n```\n## Change type face\n```java\nnew GuideView.Builder(this)\n    .setTitle(\"Guide Title Text\")\n    .setContentText(\"Guide Description Text\\n .....Guide Description Text\\n .....Guide Description Text .....\")\n    .setTargetView(view)\n    .setContentTypeFace(Typeface)//optional\n    .setTitleTypeFace(Typeface)//optional\n    .setDismissType(DismissType.outSide) //optional - default dismissible by TargetView\n    .build()\n    .show();\n```\n\n## Change title and Content text size\n\n```java\nnew GuideView.Builder(this)\n    .setTitle(\"Guide Title Text\")\n    .setContentText(\"Guide Description Text\\n .....Guide Description Text\\n .....Guide Description Text .....\")\n    .setTargetView(view)\n    .setContentTextSize(12)//optional\n    .setTitleTextSize(14)//optional\n    .setDismissType(DismissType.outSide) //optional - default dismissible by TargetView\n    .build()\n    .show();\n```\t\n## Change Gravity\n\n```java\nnew GuideView.Builder(this)\n    .setTitle(\"Guide Title Text\")\n    .setContentText(\"Guide Description Text\\n .....Guide Description Text\\n .....Guide Description Text .....\")\n    .setGravity(Gravity.CENTER)//optional\n    .setTargetView(view) \n    .setDismissType(DismissType.outSide) //optional - default dismissible by TargetView\n    .build()\n    .show();\n```     \n\t     \n## use Spannable for Content\n```java\t\nnew GuideView.Builder(this)\n    .setTitle(\"Guide Title Text\")\n    .setTargetView(view)\n    .setContentSpan((Spannable) Html.fromHtml(\"\u003cfont color='red'\u003etesting spannable\u003c/p\u003e\"))\n    .setDismissType(DismissType.outSide) //optional - default dismissible by TargetView\n    .build()\n    .show();\n```\n\n## Set Listener \n```java\t\nnew GuideView.Builder(MainActivity.this)\n    .setTitle(\"Guide Title Text\")\n    .setContentText(\"Guide Description Text\\n .....Guide Description Text\\n .....Guide Description Text .....\")\n    .setGravity(Gravity.CENTER)\n    .setTargetView(view1)\n    .setDismissType(DismissType.outSide) //optional - default dismissible by TargetView\n    .setGuideListener(new GuideListener() {\n        @Override\n        public void onDismiss(View view) {\n           //TODO ...\n        }\n     })\n    .build()\n    .show();\n```\n\n### DismissType Attribute\n\n| Type | Description |\n| ------ | ------ |\n| outside | Dismissing with click on outside of MessageView |\n| anywhere | Dismissing with click on anywhere |\n| targetView | Dismissing with click on targetView(targetView is assigned with setTargetView method) |\n| outsideTargetAndMessage | Dismissing with click on outside of MessageView and target View |\n\n\n### PointerType Attribute\n\n| Type | Description |\n| ------ | ------ |\n| circle | Show circle pointer towards targetView |\n| arrow | Show arrow pointer towards targetView |\n| none | Show no pointer or line towards targetView |\n\n\n## Contribution :collision:\n\nPull requests are welcome! :clap:\n\nYou can improve/fix some part of it .\n\nAdd Tests:\n\nAssuming that the code in question already has automated (unit) tests, do add tests for the code you submit.\nThis isn't a hard rule. There are various cases where you may need to add code without test coverage (e.g. when adding a Object), but if it can be tested, it should be tested.\n\n\n## License\n```\n   Copyright 2018 Mohammad Reza Eram\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n   \n   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmreram%2FShowCaseView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmreram%2FShowCaseView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmreram%2FShowCaseView/lists"}