【发布时间】:2013-04-07 20:03:43
【问题描述】:
我有一个包含九个补丁的图像,我在 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);
这将使高度加倍。再次单击,不再更改大小,仅在第一次单击时更改。
【问题讨论】:
-
您介意在这里放两张 9-patch 图像吗?
-
第二张图片似乎有问题(button_menu_on)
-
你能显示你的 textview 的 xml 部分吗?
-
@ArnaldoGaspar:我在 XML 中没有它,我从 onCreate() 中的代码创建 TextView。
TextView retval = new TextView(this);LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.包装内容);retval.setBackgroundResource(R.drawable.button_menu_hs_off);retval.setTextColor(0xff000000);retval.setPadding(15, 5, 15, 5);retval.setGravity(Gravity.CENTER);retval.setText( GetString(id) );retval.setOnClickListener(this); -
@MoshErsan:第二张图片(白色)有什么问题?
标签: android resize textview background-image