我有一个九补丁图像,我在activity.onCreate() 期间为我的textview 设置了背景。Textview 具有高度+宽度的 WRAP_CONTENT 布局。它是从代码创建的,而不是从 XML 创建的。
_btnCurrent.setBackgroundResource(R.drawable.button_menu_off);
这工作正常。我有另一个九补丁图像,大小相同,唯一不同的是它的颜色。现在,如果我稍后用另一张图片调用 setBackgroundResource,它将增加 textview 的高度,几乎加倍。另一个调用发生在 textview.onClick()
_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);
如果我再次调用它(在文本视图中再次单击),则没有效果。这很好,我想它也会发生在第一次点击时。所以:
Activity.onCreate()
{
btnCurrent= new TextView(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
btnCurrent.setBackgroundResource(R.drawable.button_menu_hs_off);
btnCurrent.setPadding(15, 5, 15, 5);
btnCurrent.setGravity(Gravity.CENTER);
btnCurrent.setText( GetString(id) );
btnCurrent.setOnClickListener(this);
}
onClick()
{
_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);
}
onCreate(); // -> called by Android during startup -> OK
....
onClick(); // called when user clicks on it -> btnCurrent has double height
....
onClick(); // called when user clicks again -> btnCurrent has same double height, no change in size
....
onClick(); // called when user clicks again -> btnCurrent has same double height, no change in size
我试图设置 _btnHSCurrent.setBackgroundResource(0); 在设置新图像之前,但没有帮助。
为什么会这样?
@编辑
我做了:_btnCurrent.setBackgroundResource(R.drawable.button_menu_off); 在 Activity.onCreate() 期间。
然后在 textview.onClick() 中,我调用:
_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);
这将使高度加倍。再次单击,不再更改大小,仅在第一次单击时。