• 自定义ImageSpan


        /**
         * span图片垂直居中
         */
        public class VerticalImageSpan extends ImageSpan {
    
            @SuppressWarnings("unused")
            public VerticalImageSpan(Context arg0, int arg1) {
                super(arg0, arg1);
            }
    
            public VerticalImageSpan(Context context, Bitmap b) {
                super(context, b, ALIGN_BASELINE);
            }
    
            public int getSize(Paint paint, CharSequence text, int start, int end,
                               Paint.FontMetricsInt fm) {
                Drawable d = getDrawable();
                Rect rect = d.getBounds();
                if (fm != null) {
                    Paint.FontMetricsInt fmPaint = paint.getFontMetricsInt();
                    int fontHeight = fmPaint.bottom - fmPaint.top;
                    int drHeight = rect.bottom - rect.top;
    
                    int top = drHeight / 2 - fontHeight / 4;
                    int bottom = drHeight / 2 + fontHeight / 4;
    
                    fm.ascent = -bottom;
                    fm.top = -bottom;
                    fm.bottom = top;
                    fm.descent = top;
                }
                return rect.right;
            }
    
            @Override
            public void draw(Canvas canvas, CharSequence text, int start, int end,
                             float x, int top, int y, int bottom, Paint paint) {
                Drawable b = getDrawable();
                canvas.save();
                int transY;
                transY = ((bottom - top) - b.getBounds().bottom) / 2 + top;
                canvas.translate(x, transY);
                b.draw(canvas);
                canvas.restore();
            }
        }
  • 相关阅读:
    选择排序
    java面试题08
    java面试题07
    java面试题06
    java面试题05
    oop.1
    4
    3
    Struts1中actionform和action属于MVC哪一层
    mysql查询时间段的所有数据
  • 原文地址:https://www.cnblogs.com/huyang011/p/7476931.html
Copyright © 2020-2023  润新知