ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-09-01 03:26:05  阅读:192  来源: 互联网

标签:android textview resize background-image


我有一个九补丁的图像,我在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,resize,background-image
来源: https://codeday.me/bug/20190901/1780281.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有