Android自定义View技巧

前言:

自定义View时,经常遇到View绘制的偏差,图像上下左右偏移,不知道是哪个属性没设置好。怎样更快的解决问题?

我推荐使用截屏+debug来反向推导问题的属性。

示例:

以自定义TextView高亮为例,在TextView选中的word上进行高亮,然后绘制白色选中字体。但绘制高亮背景后,再绘制的白色文字无法与原文字契合。

如上图所示,绘制的白色文字偏下。

分析文字的相关属性


肯定是Ascent、Descent哪里出问题了。但是我又不想一个个试怎么办。

解决方法:

1.截图


  1. 用AndroidStudio截图,然后保存到本地
  2. 右键截图文件 打开方式选 画图。
  3. 在“查看”的tab页面勾选 网格线
  4. 用滑轮将图片放大到最大(一个格 一像素)
  5. 使用 矩形框 测量文字偏移像素值(屏幕的右下角,会显示矩形框大小)

从截图可以看出偏移量是20像素

2.Debug

    debug到代码中,找着20像素是怎么出来的。


  1. debug到绘制的代码上,进入断点
  2. 在屏幕上右击,选择 Evaluate Expression(可以查看、运行 断点所处栈的 局部变量的参数)
  3. 输入我推测的matrix变量,查看数值
  4. 发现metrics.top + metrics.bottom 刚好是我要的数值(截图数值是后期截的)


总结:

    1.确定偏移像素值: 用截图查找,可以开启开发者模式 显示布局边界,来更有效的测量

    2.通过debug,动态的获取View参数,来确定像素值 的属性是什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值