记录-实现TextView加图片实现自定图片大小

今天遇到一个需求,在文本后面添加一张图片,

最简单的实现方式就是TextView后面再加一个ImageView,但是要限制文本显示一行,超出显示...,

然后发现了一个问题,text过长的时候会把图片挤出父布局,导致图片看不见了。。。

所以我用了 android:drawableEnd="@mipmap/pic",完美解决,这个方式会把图片当作TextView的一部分,也就不会超出父布局。

看起来没问题,然而这个图片是要指定大小的,我看了看,发现这个方式并不能再xml中指定drawable的大小,这就有不小的局限性的,然后我翻看有关于这部分的源码,发现是可以实现的,先看效果图


默认大小
指定宽高
指定宽高不按比例


虽然有时候会图片拉伸,但是是在不按比例的情况下,你要是按照比例去缩小放大,还是很好用的,下边贴代码

Drawable drawable = getResources().getDrawable(R.mipmap.pic);

//使用原本的宽高

// drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  drawable.setBounds(0, 0, 28, 15);//指定宽高

tv_name.setCompoundDrawables(null, null, drawable, null);


重点在setBounds


官方翻译 :为 Drawable 指定一个边界矩形。 这是调用 draw() 方法时可绘制对象将绘制的位置。

Rect是一个存矩形坐标的    Rect 保存了矩形的四个整数坐标。

你传进来的数值会重新调用 draw() ,将他绘制,然后就做到了改变TextView的Drawable 图片大小。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容