我试图动态创建一个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);
` 但我无法实现它。你们中的任何人都可以帮助我吗?
答案 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);