用代码给TextView图片(上下左右)

2020-07-15  本文已影响0人  因为我的心

一、前言:

我们在用TextView的时候,有时候会设置图片在它的前后左右方向上,我们可以用以下代码实现:

1、效果图:

展示图.png

设置图片在文字的上方:

  TextView tv= top.findViewById(R.id.tv);
  Drawable drawable = getResources().getDrawable(R.drawable.home_page_no);
   // 这一步是绘制图片的大小,否则不会显示.
  drawable .setBounds(0, 0, drawable .getMinimumWidth(), drawable .getMinimumHeight());
  //设置图片和文字距离
  tv.setCompoundDrawablePadding(4);
  //设置图片的位置在文字的那个方向上,
  tv.setCompoundDrawables(null, drawable , null, null);
  //设置字体颜色
  tv.setTextColor(getResources().getColor(R.color.color_FF7F8389));

2、解析:

1、setCompoundDrawables 方法

    /**
     * 
     * @param left 图片在左边
     * @param top 图片在上边
     * @param right 图片在右边
     * @param bottom 图片在下边
     */
//不设置的方向设为null即可
public void  setCompoundDrawables  (Drawable left, Drawable top, Drawable right, Drawable bottom);  

2、setBounds方法

  /**
   * @param left 图片绘制开始位置
   * @param top图片绘制开始位置
   * @param right图片绘制结束位置
   * @param bottom图片绘制结束位置
   */
    public void setBounds(int left, int top, int right, int bottom);

Drawable的setBounds方法有四个参数,setBounds(int left, int top, int right, int bottom),这个四参数指的是drawable将在被绘制在canvas的哪个矩形区域内。

上一篇 下一篇

猜你喜欢

热点阅读