setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)不起作用

我有几个EditText views ,我想在左边设置图像, setCompoundDrawablesWithIntrinsicBounds似乎不工作。 graphics似乎没有得到改变。

有谁知道为什么这可能是这样的?

这是我如何设置drawables:

  mFirstname.setCompoundDrawablesWithIntrinsicBounds(R.drawable.user_icon, 0, 0, 0); mLastname.setCompoundDrawablesWithIntrinsicBounds(R.drawable.user_icon, 0, 0, 0); mEmail.setCompoundDrawablesWithIntrinsicBounds(R.drawable.mailicon, 0, 0, 0); mPassword.setCompoundDrawablesWithIntrinsicBounds(R.drawable.lockicon, 0, 0, 0); mDateOfBirth.setCompoundDrawablesWithIntrinsicBounds(R.drawable.calico, 0, 0, 0); mCity.setCompoundDrawablesWithIntrinsicBounds(R.drawable.mailicon, 0, 0, 0); mStreet.setCompoundDrawablesWithIntrinsicBounds(R.drawable.mailicon, 0, 0, 0); mPostcode.setCompoundDrawablesWithIntrinsicBounds(R.drawable.mailicon, 0, 0, 0); mPhoneNumber.setCompoundDrawablesWithIntrinsicBounds(R.drawable.mailicon, 0, 0, 0); 

Solutions Collecting From Web of "setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)不起作用"

如果其他人有这个看似无法解释的问题,请尝试以下操作:

  • 转到您的XML模板。
  • 删除代表它的XML图像。
  • 你的看法应该刷新复合图。

基本上这部分视图似乎没有在ICS设备上重新充气。 希望这解决了一些人的问题!

另一个解决scheme是在UI循环的下一个(布局之后)循环中设置复合drawable:

 final TextView viewById = (TextView) findViewById(R.id.label); viewById.post(new Runnable() { @Override public void run() { viewById.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_menu_call, 0, 0, 0); } }); 

当你在xml布局中定义了Drawable(top,left,right,bottom)图像时,就会出现这个问题。 这就像xml drawable应用在代码中定义的那个之后。 删除xml,并在代码中执行任何你想要的。