項目中有一個點贊功能,點贊的小圖標添加在點贊列表旁邊,在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。。