Android:调用textview.setBackgroundResource两次更改textview大小

Android:调用textview.setBackgroundResource两次更改textview大小,第1张

概述我有一个九补丁的图像,我在activity.onCreate()期间为textview设置了背景.Textview具有两个高度宽度的WRAP_CONTENT布局.它是从代码创建的,而不是从XML创建的._btnCurrent.setBackgroundResource(R.drawable.button_menu_off);这很好用.我还有另一张9张图片,大小相同,唯一不

我有一个九补丁的图像,我在activity.onCreate()期间为textvIEw设置了背景. TextvIEw具有两个高度宽度的WRAP_CONTENT布局.它是从代码创建的,而不是从XML创建的.

_btnCurrent.setBackgroundResource(R.drawable.button_menu_off);

这很好用.
我还有另一张9张图片,大小相同,唯一不同的是它的颜色.
现在如果我稍后用另一个图像调用setBackgroundResource,它将增加textvIEw的高度,几乎加倍.另一个调用发生在textvIEw.onClick()

_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);

如果我再次调用它(在textvIEw中再次单击),则无效.哪个好,我认为第一次点击也会发生这种情况.
所以:

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);

这将使高度增加一倍.再次单击再次,仅在第一次单击时不再更改大小.

解决方法:

这看起来像我填充的类似问题.在调用setBackgroundResource之后,填充似乎发生了变化,而不是使用我在styles.xml中配置的值.效果看起来就像大小已经改变一样,但实际上它是填充.

我的解决方法是在更改背景后调用按钮上的setpadding,例如:

button.setBackgroundResource(R.drawable.btn_add);button.setpadding(10, 15, 10, 15);

它不是很好,但它的工作原理.

我希望这有帮助!

总结

以上是内存溢出为你收集整理的Android:调用textview.setBackgroundResource两次更改textview大小全部内容,希望文章能够帮你解决Android:调用textview.setBackgroundResource两次更改textview大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1106569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存