• 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。。

     

     

     

     

  • 相关阅读:
    docker学习
    io性能调优之page cache
    ll命令执行后结果分析
    Angular2+ ViewChild & ViewChildren解析
    <router-outlet> 干什么用的?
    npm基本命令
    什么情况下会出现undefined
    关于VUE调用父实例($parent) 根实例 中的数据和方法
    vue中的this指向问题
    对 Foreach 的理解
  • 原文地址:https://www.cnblogs.com/lucky-star-star/p/3698076.html
Copyright © 2020-2023  润新知