import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.drawable.Drawable;import android.support.annotation.NonNull;import android.text.style.ImageSpan;public class CenterAlignImageSpan extends ImageSpan {    public CenterAlignImageSpan(Drawable drawable) {        super(drawable);    }    public CenterAlignImageSpan(Bitmap b) {        super(b);    }    @Override    public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end,         float x, int top, int y, int bottom,@NonNull Paint paint) {        Drawable b = getDrawable();        Paint.FontMetricsInt fm = paint.getFontMetricsInt();        //计算y方向的位移        int transY = (y + fm.descent + y + fm.ascent) / 2 - b.getBounds().bottom / 2;        canvas.save();        canvas.translate(x, transY);//绘制图片位移一段距离        b.draw(canvas);        canvas.restore();    }}

转载:https://www.jianshu.com/p/191dd6b9af1a

更多相关文章

  1. Android中textview字体动画
  2. android.graphics.Canvas类详解
  3. android 重力感应手机方向
  4. Android(安卓)Font Metrics
  5. Android——点击水纹效果
  6. Android绘图Canvas、Paint
  7. android刮刮卡效果
  8. Android关于在Canvas类里的绘制线程问题汇总
  9. Android绘制进阶之三:在位图上(Bitmap)绘制位图(Bitmap)

随机推荐

  1. Android(安卓)自定义PopupWindow实现的Me
  2. Android 将取代 Linux 成为面向物联网的
  3. Android中如何使用ViewPager实现类似lauc
  4. android实现简单音乐播放器
  5. 【项目】Android(安卓)预置第三方应用可
  6. [Android][主题和样式]
  7. Android Tint的使用及源码分析
  8. 分享五种Android常用布局方式
  9. Android Handler消息队列的实现原理
  10. Unity3D工程集成到Android工程步骤及问题