用代码给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的哪个矩形区域内。