Giter VIP home page Giter VIP logo

spannable's Introduction

我写代码没有技巧, 全是感情    

点击开喷

看不到未来, 回不到过去


『 全部开源项目 』 『 在线简历 』 『 加入我们 』




项目 描述
Net 🍉 Android 最强大的创新式协程并发网络请求 GitHub Repo stars
BRV 🌽 Android 最强大的RecyclerView库, 比BRVAH更优雅和强大 GitHub Repo stars
soft-input-event Android软键盘遮挡/平滑动画最佳解决方案 GitHub Repo stars
DrakeTyporaTheme 最好的Typora主题 GitHub Repo stars
spannable Android最好的Spannable构建工具, 首个支持正则匹配/GIF动画/图文混排 GitHub Repo stars
Interval Android计时器工具, 倒计时/正计时/开始/暂停/继续/结束/取消 GitHub Repo stars
Serialize 应用数据存储的神器, 比SQLite/SP更方便, 可创建自动本地读写/应用销毁恢复的字段, GitHub Repo stars
StateLayout 一行代码构建整个应用的缺省页 GitHub Repo stars
StatusBar 🍥 Android 一行代码配置透明状态栏 GitHub Repo stars
Channel 优雅的事件消息框架 🍯 LiveData / Coroutine / 生命周期 特性 EventBus GitHub Repo stars
Tooltip Toast(吐司)BubbleDialog(菊花加载框) GitHub Repo stars
debugKit 开发调试悬浮窗口工具 GitHub Repo stars
LogCat 日志输出工具 GitHub Repo stars
Engine 快速开发基础库 GitHub Repo stars
SougouSkin 简约的搜狗输入法皮肤
简历模板 快速生成简洁的个人简历(部署在线简历) 在线预览
PTCode 为PT Mono添加连字特性(Ligatures)
PlexMono ibm-plex添加连字特性(Ligatures)
cascadia-code-patch 修改cascadia-code字符
JetBrainsMono-patch 修改JetBrainsMono字符

spannable's People

Contributors

ccominghome avatar ismartcoding avatar liangjingkanji avatar txca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spannable's Issues

替换不能叠加效果吗?

spannable {
"替换叠加".color(
ContextCompat.getColor(
application,
R.color.colorF9D038
), array
).style(Typeface.ITALIC, array)
}

图片不居中

大佬,图片不居中啊,无边框的不明显,您可以试下带边框的图看看

国际化问题

设置 下面的key
(%sx%s)استلم
国际化阿语的时候有问题

val url = "https://avatars.githubusercontent.com/u/21078112?v=4"
binding.tv1.text = getString(R.string.coins_shouyi_liwushuom).format(url,1).replaceSpan(url) {
GlideImageSpan(binding.tv1, url).setDrawableSize(20.dp)
}

设置 android:textDirection="ltr" 就没问题了,但是理论上应该不需要设置

反馈一下,设置多个图片换行会出现堆叠。

步骤,环境:
原生Android 10.

我使用了demo的最新代码,把39.9那个显示图片付款的图片切换成R.mipmap.ic_launcher。
然后没有设置大小。

"¥".setSpan(ColorSpan("#ed6a2c"))
            .addSpan("39.9", arrayOf(ColorSpan("#ed6a2c"), AbsoluteSizeSpan(18, true)))
            .addSpan(" 1000+ 人付款")
            .addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                    //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            )
            .addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            ).addSpan("image",
                CenterImageSpan(this, R.mipmap.ic_launcher)
                    .setAlign(CenterImageSpan.Align.BOTTOM)
                //.setDrawableSize(20.dp).setMarginHorizontal(4.dp)
            )
            .addSpan("点击付款在测试,增加多一段文字,造成2行文字看看.测试挖打发斯蒂芬阿道夫离开家哦i就阿萨德李逵负荆啊是两地分居;as")

然后就出现了堆叠了。
Screenshot_20220728_104958

换一个小一点的图片,比tv的行高,或者edit text的行高的图片,不设置图片。setAlign(CenterImageSpan.Align.BOTTOM)。就堆叠了。

不知道这个算不算bug呢

在RecyclerView item里面的RecyclerView 里的item里面的textView设置HighlightSpan之后的点击事件无效

简单来说就是一个RecyclerView里面的item嵌套一个RecyclerView ,再从嵌套里面的RecyclerView 的item放置TextView,然后再在这个Textview里面设置HighlightSpan的点击事件无法响应.
实际上嵌套的RecyclerView的item点击事件和item里面的TextView的点击事件都是可以响应的,但就是不能响应Textview设置了HighlightSpan的点击事件
E52(2K81TXTLXLBNCZ)RQLV

Demo安装失败,Android12

adb: failed to install /Users/$User/Downloads/spannale-sample.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed collecting certificates for /data/app/vmdl711509178.tmp/base.apk: Failed to collect certificates from /data/app/vmdl711509178.tmp/base.apk: Attempt to get length of null array]

标签全选替换成文字后文字显示标签颜色

如题,
具体操作:

  1. 输入带标签的文案,如:我想测试一下#标签
  2. 选中#标签,替换成其他文案,如我想测试一下其他文案
  3. 结果其他文案颜色不是默认颜色,还是标签颜色

麻烦帮忙看个场景,文案是动态拼接的情况怎么搞

   val desc = SpannableStringBuilder()
    list?.forEachIndexed { index, it ->
        val str = "" + it.title + "".setSpan(ColorSpan("#9C9BFB".parseColor()))
            .addSpan(" " + it.name, ColorSpan("#999999".parseColor()))
        desc.append(str)
    }
    textview.text = desc

这样不生效,请问哪用错了,还有可以同时设置多个 span 吗,比如改变颜色的同时加个点击事件之类的。。

CenterImageSpan 图+文显示的时候,图片不居中

  binding.tv8.text = "使用shape"
            .addSpan(
                "自适应标签",
                listOf(
                    CenterImageSpan(this, R.drawable.bg_label1)
                        .setAlign(CenterImageSpan.Align.CENTER)
                        .setDrawableSize(-1)
                        .setPaddingHorizontal(6.dp)
                        .setTextSize(24.dp) // 区别于AbsoluteSizeSpan是完全居中对齐行
                        .setTextVisibility(),
                    ColorSpan(Color.WHITE),
                    StyleSpan(Typeface.BOLD)
                )
            ).addSpan("构建自适应文字宽高标签")

        binding.tv9.text = "自适应点九图片".setSpan(
            listOf(
                CenterImageSpan(this, R.drawable.bg_date_label)
                    .setDrawableSize(-1)
                    .setTextVisibility()
                    .setAlign(CenterImageSpan.Align.CENTER),
                ColorSpan(Color.BLACK),
                AbsoluteSizeSpan(34, true),
                StyleSpan(Typeface.BOLD)
            )
        ).addSpan("适用于可伸展PNG")

图片

纯图片的时候,是可以居中的,但是图文这种情况,Center就失效了

可以支持标签类型的span

大佬,能否支持下带边框或是背景色的标签,可以设置文字、边框、背景颜色,文字内边距,边框、背景可以设置圆角,就是都可以配置的span。常见的如下图
1
2
3

TextView设置行间距后,Span不居中

TextView添加lineSpacingExtra属性之后,CenterImageSpan不居中

binding.tv11.text =
    "I __ Emily Parker. The long text is used to help verify whether the grammar choice on Android widens the text spacing. The long text is used to help verify whether the grammar choice on Android widens the text spacing. The long text is used to __ verify whether the grammar choice on Android widens the __ spacing."
        .replaceSpan("__") {
            CenterImageSpan(this, R.drawable.bg_label)
                .setDrawableSize(-1)
                .setPaddingHorizontal(6.dp)
                .setPaddingVertical(3.dp)
                .setTextSize(16.dp) // 区别于AbsoluteSizeSpan是完全居中对齐行
                .setTextVisibility(false)
        }
<TextView
    android:id="@+id/tv11"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:gravity="center"
    android:lineSpacingExtra="8dp" />

uTools_1666921608947

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.