下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】AndroidCheckBox中设置padding无效解决办法
AndroidCheckBox中设置padding无效解决办法CheckBox使用本地图片资源CheckBox是Android中用的比较多的一个控件,不过它自带的button样式比较丑,通常都会替换成本地的资源图片。使用本地资源图片很简单,设置android:button属性为一个自定义的包含selector的drawable文件即可。例如android:button=”@drawable/radio_style”。radio_style.xml定义如下。checked和unchecked分别是选中和未选中时使用的图片资源。CheckBox点击响应问题当CheckBox使用本地的图片资源后,如果本地图片很小(图片大小需要和布局搭配,很多时候为了界面的美观不能使用太大的图片),而且右侧没有文字时,会导致CheckBox很难被点中。增加点击区域,通常的做法是增加padding值,扩大控件的外部范围。我们希望可以通过设置CheckBox的padding值,让图片的上下左右四个方向都增加一定的范围,这样用户点击图片的响应上就不会有问题了。CheckBoxpadding失效问题CheckBox分别设置上、下、左、右和全部四个方向各20dp的padding后实际显示效果如图所示。这里为了看得清楚,为CheckBox设置了背景色,并且添加了文字。
从图示可以看出,CheckBox设置padding值影响的是实际上文字到CheckBox边界的距离,图片始终在左侧垂直居中的位置。
先看上下padding,当设置上下padding时,由于文字本身距离上下边界就有一定的距离,如果padding值设置的不够,整个CheckBox区域根本不会变化,通过设置较大的padding值可以实现扩大CheckBox上下区域的目的。最后一张图上下各20dp的padding,这时可以看到CheckBox高度增加了。但由于中间文字距离上下边界的距离和CheckBox图片高度,文字字号,文字内部padding等很多因素有关,很难通过对上下padding设置精确控制CheckBox区域,很可能出现在这个手机上高度被拉的很大,而另一个手机上根本没有效果。
再看左右padding,当设置左右padding时,无论是左padding还是右padding,影响的只是文字的位置。图片始终都在整个CheckBox的左侧,对图片来说,增大的都是右侧区域。所以设置的左右padding不能解决CheckBox点击响应的问题,不仅会导致图片位置偏左,还会出现点击左侧区域无法点中的情况。
标题中所说的padding无效问题,实际上是有效的,只是设置paddingLeft增加的是右边区域,paddingTop和paddingBottom只有设置较大的值才能看到效果。CheckBoxpadding失效问题原因要想知道CheckBoxpadding失效问题原因,得要查看Android源码,CheckBox是继承自CompoundButton,CheckBox左侧的图片是在CompoundButton的onDraw()方法中绘制的,onDraw()方法代码如下,mButtonDrawable就是要绘制的图片对应的Drawable对象,可以看到left始终为0,而top位置和Grivity有关(上述例子中Gravity是居中的)。解决CheckBox点击响应问题由于CheckBox和CompoundButton没有提供任何方法设置图片的位置,要想解决CheckBox点击响应的问题似乎唯一的方法就是重写一个新的控件,然后在onDraw方法中确定图片位置时把padding也考虑进去。不过这样做实在是太麻烦了。
这里给出另外一种简单的方法,那就是将图片扩大。CheckBox点击响应问题本身是由于图片过小,如果将图片扩大就不存在这个问题了,但前面说之所以用小的图片是为了布局搭配和界面美观,如果将图片扩大不是又回到最开始的问题了吗!
其实这里说的图片扩大,不是将图片整体放大,而是图片内容不变,在原先的图片外围增加透明像素,由于透明像素不可见,图片看起来的实际大小仍然和以前一样,但由于透明像素的存在,CheckBox的区域也会随之增大。
要在图片外网增加透明像素前提是图片必须是png格式的,不过这并不是问题,通常资源文件都是png格式的,即使不是png格式的图片,也可以先转换成png格式,然后再增加透明像素。
增加透明像
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南娄底市妇幼保健院公开招聘专业技术人员考试备考试题及答案解析
- 2026年榆林市第九幼儿园招聘考试备考试题及答案解析
- 2026江西吉安市新庐陵大数据有限公司面向社会招聘派遣员工4人考试备考题库及答案解析
- 2026中国联通甘孜州分公司招聘考试参考试题及答案解析
- 2026年乐平市公安局公开招聘留置看护勤务辅警【56人】考试参考试题及答案解析
- 2026云南玉溪市元江县人民政府办公室编外人员招聘2人考试备考题库及答案解析
- 2026年瑞丽市勐卯街道卫生院招聘备考题库及答案详解1套
- 2026年黄石市园博文化旅游经营管理有限公司招聘备考题库及完整答案详解1套
- 四川新南城乡建设集团有限公司2025年面向社会公开招聘3名一线工作人员的备考题库及参考答案详解一套
- 2026年集团招聘广东省广轻控股集团有限公司招聘备考题库及答案详解参考
- 多趾畸形护理查房
- 伊利并购澳优的财务绩效分析
- 胸腺瘤伴重症肌无力课件
- 安徽省合肥市蜀山区2024-2025学年上学期八年级数学期末试卷
- 电商售后客服主管述职报告
- 十五五安全生产规划思路
- 上海证券有限责任公司校招职位笔试历年参考题库附带答案详解
- 剪刀车专项施工方案
- 2024-2025学年四川省绵阳市七年级(上)期末数学试卷
- 项目预算管理咨询方案
- 合成药物催化技术
评论
0/150
提交评论