项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在xml里可以进行设置,也可以在代码中进行绘图。
下面是两种方法的设置:
1、xml里:一些控件:button、textView等等里面有个属性是android:drawableLeft 就可以将pic设置到text的左边。good....
2、代码中:
TextView txtlikedList = new TextView(this.getContext());
Drawable drawable= getResources().getDrawable(R.drawable.like_solid); /// 这一步必须要做,否则不会显示.
drawable.setBounds(0, 0, 25, 25); //setBounds (int left, int top, int right, int bottom) ,Specify a bounding rectangle for the Drawable, 开始绘制drawable
txtlikedList.setCompoundDrawables(drawable,null,null,null); //setCompoundDrawables (Drawable left, Drawable top, Drawable right, Drawable bottom) , 将图片添加在textview的左、上、右、下
SpannableStringBuilder strNameSpan = setUserStyle(like_users);//点赞的用户设置字体颜色
txtlikedList.setText(strNameSpan); // 将richtext设置进textview
linearComment.addView(txtlikedList); //整个布局添加这个包含了图片的textView
由于我的点赞用户是动态添加的,就是一触碰点赞这个imageButton,点赞的那个textview就会添加上新的用户。用了上述两种方法,动态的点赞,结果造成了随着点赞用户数目的变化,那个点赞的小图标就会跟着上下移动!始终位于这个textview的左中间的位置。。。根本原因还是因为这个image就处于整个textview里面,它和文本是一体的,所以当然为了配合文本数量的变化来点位置变化了。。
这可不是最终的效果,应该是点赞的小图标不动,任凭右边的文本内容变化。因此上述方法适用于一些简单的固定的图片+控件(textview、button)的使用。我这里还是老老实实的将左边这个图片、textview分开吧。。。并且我点赞用户追加的时候,在点赞监听器里,richtext本来就有append()方法,然后在textview里再set一下就ok了
并且textview里的文本还会自动换行,不用考虑动态添加控件自动换行的问题,good。。