因公司项目需要,其实也是自己给自己挖的坑,看着首页展示imageview不好看,因为imageview数量不定,有的是3张有的是1张,给用户效果不好,才找的设计改的ui设计,并且给设计说如果有图片,直接在详情页展示就行了,在首页只需要加上个有图片的标,无奈只能自己写个textview了
1.首先新建个ImageTextView类,继承TextView类,实现他的构造方法
2.在attrs文件下新建个ImageTextView属性文件,便于自定义view属性使用
3.在ImageTextView的实现了TextView的onMeasure方法中注册ViewTreeObserver vto2 = getViewTreeObserver();
vto2.addOnGlobalLayoutListener(this);,否则直接获取控件的宽度getWidth()=0,因为我们在调用的时候View根本没用进行绘制相应的函数没有调用
4.在onGlobalLayout()中对文字进行宽度的获取,然后对图片位置进行添加
5.在用到的xml文件中直接使用
其中app:srcImage就是我们在TextView中需要追加的图片,至于想显示几行,直接使用系统的maxLines来设置就行了
最终效果如下
网友评论