ImageSpan和TextView在垂直方向,SPAN_EXCLUSIVE_EXCLUSIVE等几个属性

默认ImageSpan无法实现与文字垂直对齐,但通过自定义ImageSpan可以达成此效果。本文提供了一段来自Stack Overflow的代码示例,解释了SPAN_EXCLUSIVE_EXCLUSIVE属性的作用。
摘要由CSDN通过智能技术生成

默认的ImageSpan只能实现和文字向上(ImageSpan.ALIGN_BASELINE)和向下(ImageSpan.ALIGN_BOTTOM)对齐,所以是无法实现ImageSpan和文字垂直方向在一条直线上的。

当然也是能实现的,自定义一一个ImageSpan就行,下面是代码,来自So。

public class CenteredImageSpan extends ImageSpan
{
    private WeakReference<Drawable> mDrawableRef;

    public CenteredImageSpan(Drawable drawableRes)
    {
        super(drawableRes);
    }

    @Override
    public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm)
    {
        Drawable d = getCachedDrawable();
        Rect rect = d.getBounds();

        if (fm != null)
        {
            Paint.FontMetricsInt pfm = paint.getFontMetricsInt();
            // keep it the same as paint's fm
            fm.ascent = pfm.ascent;
            fm.descent = pfm.descent;
            fm.top = pfm.top;
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值