首页 > 代码库 > Android控件上添加图片

Android控件上添加图片

项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在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。。