自定义TextView~

第一步:首先需要写一个类继承自View重写其中3个方法.

在这里插入图片描述

为什么说这里建议使用this呢?
因为这样可以提高代码的复用性,不管调用什么都会执行到第三个方法.这样的话相同的代码就不需要写3次啦.

第二步:需要在res中的values中创建attrs文件,这个主要是用来xml布局中的代码來控制java代码的.

在这里插入图片描述
这里设置的是自定义TextView的name,size,color.

第三步:在xml布局中直接引用并且设置即可.

在这里插入图片描述

第四步:我设置的宽和高是通过style引用的,这样可以提高代码的复用性,大家可以参考一下,可以用来装杯~哈哈哈哈

在这里插入图片描述

第五步: 直接在自定义的类中获取attrs文件设置的属性.

在这里插入图片描述
context.obtainStyledAttributes(AttributeSet attrs , int[] int);是获取attrs对象
然后通过attrs对象在get出来对应的东西即可,这里需要注意的是size设置的是sp或者dp,是Dimension类型的而不是interger类型的.写完的时候一定要记得回收它.

第六步:测量View的宽和高,并且设置矩形.

在这里插入图片描述
相信各位大佬们都懂,这里就不细说了!!

第七步:就是在onDraw中写字

在这里插入图片描述
这里需要注意的是在:
canvas.drawText(String str,float x, float y,Paint paint);

  • String str 需要设置的文字(已经通过xml中获得)
  • float x 这里填getPaddingLeft()是因为如果用户设置了padding值的话需要从左边开始来显示.如果在xml中不设置padding的话,getPaddingLeft() == 0
  • float y 这里需要填Text的baseline(基线)
  • Paint paint 画笔
    在这里插入图片描述

来看看最后的效果吧~

在这里插入图片描述

Android小白,请各位大佬们多多指教!

猜你喜欢

转载自blog.csdn.net/weixin_44819566/article/details/106050367