zoukankan      html  css  js  c++  java
  • XRichText


    XRichText是一个可以显示Html富文本的TextView。可以用于显示新闻、商品详情等场景。欢迎star、fork,提出意见。


    xrichtext image

    使用

    • Gradle : compile ‘cn.droidlover:XRichText:1.0.0’
    • Github : XRichText

    特别说明:

    可以直接调用text方法显示html,其他的接口只是应对特殊场景的。

    主要特性

    • 自定义超链接link的点击
    • 自定义图片img的点击
    • 支持链式调用
    • 图片支持三种对齐方式(左对齐、居中、右对齐)
    • 支持在图片加载前对每张图片的url、width、height、对齐方式精细调整
    • 内置图片下载器
    • 可自定义图片下载器,如使用universal image loader、Picasso、Glide等

    实现原理

    • spanned
    • 线程池
    • 自定义ImageGetter

    示例

    1
    2
    3
    4
    5
    <cn.droidlover.xrichtext.XRichText
    android:id="@+id/richText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp" />

    在Java中:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    richText
    .callback(new XRichText.BaseClickCallback() {
    public boolean (String url)大专栏  XRichTextan> {
    showMsg(url);
    return true;
    }
    public void onImageClick(List<String> urlList, int position) {
    super.onImageClick(urlList, position);
    showMsg("图片:" + position);
    }
    public void onFix(XRichText.ImageHolder holder) {
    super.onFix(holder);
    if (holder.getPosition() % 3 == 0) {
    holder.setStyle(XRichText.Style.LEFT);
    } else if (holder.getPosition() % 3 == 1) {
    holder.setStyle(XRichText.Style.CENTER);
    } else {
    holder.setStyle(XRichText.Style.RIGHT);
    }
    holder.setWidth(550);
    holder.setHeight(400);
    }
    })
    .imageDownloader(new ImageLoader() {
    public Bitmap getBitmap(String url) throws IOException {
    return UILKit.getLoader().loadImageSync(url);
    }
    })
    .text(TEXT);

    api说明

    • onLinkClick(String url) 当点击超链接时触发,url为点击的url
    • onImageClick(List urlList, int position) 当点击图片时触发,urlList为图片的url集合,position为被点击的位置,从0开始
    • onFix(XRichText.ImageHolder holder) 当图片加载前回调此方法,通过holder可以调整图片的src、width、height、style(对齐方式)
    • 设置html内容时,务必调用text方法
    • imageDownloader(ImageLoader loader)可以自定义图片加载器,库中已有默认实现。可以根据项目情况定义加载器,如三方库UIL、Picasso等,只需实现ImageLoader接口就行。getBitmap方法已经在线程池中,所以自定义loader时不必考虑线程问题.
    • ClickCallback接口有默认实现类BaseClickCallback,可以直接使用此类重写需要的方法。
  • 相关阅读:
    C# winform中使用contextMenuStrip作为右键菜单时,菜单项失效的问题
    Helix 3D toolkit初尝试
    Image.save引发的“GDI+发生一般性错误”
    WPF浏览器程序的发布问题
    SVN checksum mismatch
    Fedora 13 nVidia家的显卡也有开源3D驱动了
    关于package 'Visual Web Developer HTML Source Editor Package' has failed to load
    MongoDB .NET Driver 1.1 Bug导致MongoDB拒绝连接
    Nginx导致页面发送给错误的用户
    ArchLinux的一些知识
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12370883.html
Copyright © 2011-2022 走看看