今天碰到了这么一个奇葩问题,在调用Button的setBackgroundResource()方法之后,Button的高度和宽度被压缩了~原本还以为是被挤压造成的....

调试了一番,终于发现问题,在调用setBackgroundResource()/setBackgroundDrawable() 会导致控件的Padding属性失效,包括paddingLeft,paddingRight,paddingTop,paddingBottom...

解决办法:

先获取控件的padding属性,调用setBackgroundResource()/setBackgroundDrawable() 之后,重新设置进去~~

            int top = btnOrderPay.getPaddingTop();            int left = btnOrderPay.getPaddingLeft();            int right = btnBack.getPaddingRight();            int bottom = btnOrderPay.getPaddingBottom();            btnOrderPay.setBackgroundResource(R.drawable.btn_gray_shape);            btnOrderPay.setPadding(left, top, right, bottom); // button改变背景之后padding参数会失效,重新设置padding

问题搞定~~

更多相关文章

  1. Android(安卓)MediaPlayer的生命周期
  2. Android(安卓)View重绘和更新: invalidate和requestLayout
  3. Android控件属性——是否可见和可点击
  4. 安卓控件之单选按钮 (RadioButton和RadioGroup)
  5. Android架构组件(3)LiveData框架
  6. Android自定义照相机实现 拍照 录像
  7. Android:Activity(四):Activity生命周期
  8. Android(安卓)NDK学习(6)在Android项目中调用已有.so库
  9. Android下拉刷新上拉载入控件,对全部View通用!

随机推荐

  1. 建立一个简单的android涂鸦工程
  2. import android eclipse project to andr
  3. android TextView属性汇总
  4. Android 元素居中
  5. Android查看源码
  6. 获取Google Maps API 指纹证书时获取的是
  7. SQLiteDatabase 启用事务源码分析
  8. Android下图片或按钮等可拖动到任意位置
  9. Android给ListView设置分割线Divider样式
  10. Android Telephony Framework相关知识整