import android.graphics.Canvas;import android.graphics.Paint;import android.text.Layout;import android.text.Spanned;import android.text.style.LeadingMarginSpan;import android.util.Log;public class ListItemSpan implements LeadingMarginSpan {  private final int mNumber;  private static final int BULLET_RADIUS = 3;  private static final int NUMBER_RADIUS = 10;  //Gap should be about 1em  public static final int STANDARD_GAP_WIDTH = 30;  public ListItemSpan() {      mNumber = -1;  }  public ListItemSpan(int number) {      mNumber = number;  }    public int getNumber() {    return this.mNumber;  }  public int getLeadingMargin(boolean first) {        if (!first) {      return 0;    }          if (mNumber != -1) {          return 2 * NUMBER_RADIUS + STANDARD_GAP_WIDTH;      } else {          return 2 * BULLET_RADIUS + STANDARD_GAP_WIDTH;      }  }  public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top,                                int baseline, int bottom, CharSequence text, int start, int end,                                boolean first, Layout l) {          if (((Spanned) text).getSpanStart(this) == start) {          Paint.Style style = p.getStyle();          p.setStyle(Paint.Style.FILL);          if (mNumber != -1) {              c.drawText(mNumber + ".",                   x + dir,                   baseline, p);                        } else {              c.drawText("\u2022", x + dir, baseline, p);          }          p.setStyle(style);      }  }}


-- 源代码引用自 HtmlCleaner Android


======

最近在做Android上的富文本编辑器。

有朋友问到

Android 里面有内置的BulletSpan 

那带有数字的 number list

应该怎么做呢?


其实如果不会自己写Span

耐心Google 一定能得到相关代码

我借花献佛

把Html Cleaner的代码贴在这里

供大家参考


更多相关文章

  1. 系出名门 Android源代码
  2. Android应用程序安装过程源代码分析(3)
  3. Android开发——控件基础(七)ListView组件:示例代码
  4. Ubuntu 13.04 编译环境配置及android 2.3 源代码编译时出现了以
  5. Android应用程序安装过程源代码分析(4)
  6. Android平台mass storage相关代码
  7. 使用代码为textview设置drawableLeft
  8. [置顶] Android 2.3.5源代码 更新至android 6.0,可以下载,度娘网盘
  9. cocos2dx 调用java层代码

随机推荐

  1. Android activity栈 VS WinPhone BackSta
  2. Android: bug: The application may be d
  3. 关于Android studio debug不成功的原因
  4. 20150602_Andriod 向窗体传递参数
  5. android实现快递跟踪进度条
  6. Android(安卓)模拟MotionEvent事件 触发
  7. android home 键的监听方法记录
  8. Android 仿大众点评团购购买条浮动效果
  9. android user_tag.mk与user编译模式
  10. android bitmap图片压缩,打时间水印。