Android TextView的图片和文字居中探索

Android TextView的图片和文字居中探索,第1张

概述效果图: TextView图片文字居中实现思路:获取TextView中图片和文字的宽度和高度,并根据TextView的宽高计算居中所需要的偏移量。实现核心代码:@OverrideprotectedvoidonDraw(Canvascanvas){if(isTextDrawableCenter){if(drawableTop!= 效果图:

 TextVIEw图片文字居中实现思路:获取TextVIEw中图片和文字的宽度和高度,并根据TextVIEw的宽高计算居中所需要的偏移量。实现核心代码:
    @OverrIDe    protected voID onDraw(Canvas canvas) {        if (isTextDrawableCenter) {            if (drawabletop != null || drawableBottom != null) {                int textHeight,drawableHeight;                //文本行数*行高度(行高度包含getlinespacingExtra())                if (getMaxlines() < getlineCount()) {                    textHeight = getMaxlines()*getlineHeight();                } else {                    textHeight = getlineCount()*getlineHeight();                }                drawableHeight = drawabletopHeight + drawableBottomHeight;                float bodyHeight = textHeight + drawableHeight + getCompoundDrawablepadding();                int dy = (int) ((getHeight() - bodyHeight) * 0.5f);                setpaddingrelative(0, dy,0,dy);//                canvas.translate(0, dy);            }            if (drawableleft != null || drawableRight != null) {                float textWIDth;                int drawableWIDth;                Rect rect = new Rect();                //计算文本宽度                textWIDth = getPaint().measureText(getText().toString());                drawableWIDth = drawableleftWIDth + drawableRightWIDth;                float bodyWIDth = textWIDth + drawableWIDth + getCompoundDrawablepadding();                int dx = (int) ((getWIDth() - bodyWIDth) * 0.5f);                setpaddingrelative(dx, 0,dx,0);            }        }        super.onDraw(canvas);    }
 遇到问题:canvas.translate()偏移整个canvas,导致水平或垂直方向的图片会显示不全(解决:通过setpaddingrelative()设置偏移量,虽然可以实现效果,但是该方法会执行requestLayout())TextVIEw的文字不居中(解决:使用setGravity()设置内容水平或垂直居中)设置左右图片和文字居中时,文字不换行(没解决)总结:

 实现图片和文字居中,完全可以使用布局嵌套TextVIEw(方便,没BUG)

github:https://github.com/wudengwei/TextStrongView

总结

以上是内存溢出为你收集整理的Android TextView的图片和文字居中探索全部内容,希望文章能够帮你解决Android TextView的图片和文字居中探索所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存