无法动态设置textview drawable

时间:2017-06-12 09:46:18

标签: android textview

我试图动态创建一个textview。我想将drawable设置为textview`

TextView tab = new TextView(getContext());
        tab.setText(title);
        tab.setSingleLine();
        tab.setGravity(Gravity.CENTER);
        int padding = getResources().getDimensionPixelOffset(R.dimen.offset);
        tab.setPadding(0,0,padding,0);
        if(typeface!= null){
            tab.setTypeface(typeface);
        }
        tab.setCompoundDrawables(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp),null,null,null);

` 但我无法实现它。你们中的任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:5)

使用 setCompoundDrawablesWithIntrinsicBounds

  

将Drawables(如果有)设置为显示在上方的左侧   文本右侧和下方。如果您不想要Drawable,请使用null   那里。 Drawables的界限将设置为其内在界限。

setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp),null,null,null);

setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp),0,0,0);

答案 1 :(得分:2)

尝试使用 setCompoundDrawablesWithIntrinsicBounds >

void setCompoundDrawablesWithIntrinsicBounds (Drawable left, 
                Drawable top, 
                Drawable right, 
                Drawable bottom)
  

将Drawables(如果有)设置为显示在文本的左侧,上方,右侧和下方。如果你不想在那里使用Drawable,请使用null。 Drawables的界限将设置为其内在界限。

     

调用此方法将覆盖先前使用setCompoundDrawablesRelative(Drawable,Drawable,Drawable,Drawable)或相关方法设置的任何Drawable。

示例代码

TextView textView = (TextView) findViewById(R.id.myTxtView);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0);