{"id":18323831,"url":"https://github.com/iwgang/simplifyspan","last_synced_at":"2025-04-04T20:11:38.805Z","repository":{"id":55842329,"uuid":"47864494","full_name":"iwgang/SimplifySpan","owner":"iwgang","description":"A easy-to-use and powerful Spannable library","archived":false,"fork":false,"pushed_at":"2021-10-08T13:52:45.000Z","size":2872,"stargazers_count":551,"open_issues_count":6,"forks_count":87,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-28T19:08:12.464Z","etag":null,"topics":["android-library","spannable","textview"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iwgang.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}},"created_at":"2015-12-12T04:41:35.000Z","updated_at":"2025-03-26T06:23:25.000Z","dependencies_parsed_at":"2022-08-15T07:50:11.203Z","dependency_job_id":null,"html_url":"https://github.com/iwgang/SimplifySpan","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwgang%2FSimplifySpan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwgang%2FSimplifySpan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwgang%2FSimplifySpan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwgang%2FSimplifySpan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iwgang","download_url":"https://codeload.github.com/iwgang/SimplifySpan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242678,"owners_count":20907134,"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-library","spannable","textview"],"created_at":"2024-11-05T18:29:43.780Z","updated_at":"2025-04-04T20:11:38.778Z","avatar_url":"https://github.com/iwgang.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Android Gems](http://www.android-gems.com/badge/iwgang/SimplifySpan.svg?branch=master)](http://www.android-gems.com/lib/iwgang/SimplifySpan)\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-SimplifySpan-green.svg?style=true)](http://android-arsenal.com/details/1/2907)\n[![@iwgang](https://img.shields.io/badge/weibo-%40iwgang-blue.svg)](http://weibo.com/iwgang)\n\n# SimplifySpan\nA easy-to-use and powerful Spannable library\n\n### screenshot\n![](https://raw.githubusercontent.com/iwgang/SimplifySpan/master/screenshot/s1.png)   \n![](https://raw.githubusercontent.com/iwgang/SimplifySpan/master/screenshot/s3.gif)  \n\n### gradle\n    implementation 'com.github.iwgang:simplifyspan:2.2'\n    \n### Support Units\n* SpecialTextUnit\n    * **text** (Constructor | String)\n    * **gravity** (setGravity(gravity | int)) SpecialGravity.TOP, SpecialGravity.CENTER, SpecialGravity.BOTTOM\n    * **convertMode** (setConvertMode(convertMode | int)) SpecialConvertMode.ONLY_FIRST, SpecialConvertMode.ALL, SpecialConvertMode.ONLY_LAST\n    * **textColor** (Constructor Or setTextColor(int color))\n    * **textSize** (Constructor Or setTextSize(float size)) ps\n    * **backgroundColor** (setTextBackgroundColor(int color))\n    * **showUnderline** (showUnderline())\n    * **showStrikeThrough** (showStrikeThrough())\n    * **textBold** (useTextBold())\n    * **textItalic** (useTextItalic())\n    * **textStyle** (setTextStyle(Typeface style))\n    * **clickableUnit** (setClickableUnit(SpecialClickableUnit))\n* SpecialLabelUnit\n    * **text** (Constructor | String)\n    * **gravity** (setGravity(gravity | int)) SpecialGravity.TOP, SpecialGravity.CENTER, SpecialGravity.BOTTOM\n    * **convertMode** (setConvertMode(convertMode | int)) SpecialConvertMode.ONLY_FIRST, SpecialConvertMode.ALL, SpecialConvertMode.ONLY_LAST\n    * **labelTextColor** (Constructor | int color)\n    * **labelTextSize** (Constructor | int color) sp\n    * **labelBgColor** (Constructor | int color)\n    * **bitmap** (Constructor | Bitmap)\n    * **labelBgRadius** (setLabelBgRadius(float radius)) Only support labelBgColor\n    * **labelBgWidth** And **labelBgHeight** (Constructor Or setLabelBgSize(int width, int height)) px\n    * **padding** (setPadding(int padding)) px\n    * **paddingLeft** (setPaddingLeft(int padding)) px\n    * **paddingRight** (setPaddingRight(int padding)) px\n    * **labelBgBorderColor** And **borderSize** (showBorder(int labelBgBorderColor, float borderSize | px))\n    * **textBold** (useTextBold())\n    * **textItalic** (useTextItalic())\n    * **clickable** See SimplifySpanBuild.appendMultiClickable() Or SimplifySpanBuild.appendMultiClickableToFirst()\n* SpecialImageUnit\n    * **text** (Constructor | String)\n    * **gravity** (setGravity(gravity | int)) SpecialGravity.TOP, SpecialGravity.CENTER, SpecialGravity.BOTTOM\n    * **convertMode** (setConvertMode(convertMode | int)) SpecialConvertMode.ONLY_FIRST, SpecialConvertMode.ALL, SpecialConvertMode.ONLY_LAST\n    * **bitmap** (Constructor)\n    * **width** And **height** (Constructor) px\n    * **clickable** See SimplifySpanBuild.appendMultiClickable() Or SimplifySpanBuild.appendMultiClickableToFirst()\n* SpecialClickableUnit\n    * **curTextView** (Constructor | TextView)\n    * **onClickListener** (Constructor | OnClickableSpanListener)\n    * **isShowUnderline** (showUnderline())\n    * **pressTextColor** (setPressTextColor(int color))\n    * **pressBgColor** (setPressBgColor(int color))\n    * **normalTextColor** (setNormalTextColor(int color))\n    * **normalBgColor** (setNormalBgColor(int color))\n* SpecialRawSpanUnit\n    * **text** (Constructor | String)\n    * **spanObj** (Constructor) Spannable Object\n    * **flags** (Constructor | int) Spannable flags\n    \n### Support Methods\n* SimplifySpanBuild\n    * **append** (string | Units)\n    * **appendToFirst** (string | Units)\n    * **appendMultiClickable** ()\n    * **appendMultiClickableToFirst** ()\n    * **build** ()\n\n### how to use ?\n[Sample Code](https://github.com/iwgang/SimplifySpan/blob/master/app/src/main/java/cn/iwgang/simplifyspandemo/MainActivity.java)\n```\n// sample 1\ntvText.setText(new SimplifySpanBuild(\"距离您：\").append(new SpecialTextUnit(\"385\", Color.BLUE)).append(\" 米\").build());\n\n// sample 2\nCharSequence spannableString = new SimplifySpanBuild(\" 艾客优品雷霆Dock 2 雷电转USB3.0/火线/esata 扩展HUB\")\n        .appendToFirst(new SpecialLabelUnit(\"1212\", Color.WHITE, sp2px(8), Color.RED, 70, 35).useTextBold().setGravity(SpecialGravity.CENTER))\n        .appendToFirst(new SpecialLabelUnit(\"天猫\", Color.WHITE, sp2px(8), 0xFFFF5000, 60, 35).setGravity(SpecialGravity.CENTER))\n        .build();\ntvText.setText(spannableString);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwgang%2Fsimplifyspan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiwgang%2Fsimplifyspan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwgang%2Fsimplifyspan/lists"}