创建一个自定义View类

新建一个自定义 View 的类,继承自 View

  1. class TView @JvmOverloads constructor(
  2. context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
  3. ) : View(context, attrs, defStyleAttr) {
  4. // 创建画笔
  5. val paint = Paint()
  6. // 重写 onDraw 方法
  7. override fun onDraw(canvas: Canvas?) {
  8. // 注意一定不能忘了这个👇
  9. super.onDraw(canvas)
  10. // 绘制一个圆
  11. canvas?.drawCircle(300F, 300F, 200F, paint)
  12. }
  13. }

其中 @JvmOverloads 的说明如下👇
@JvmOverloads 注解

在布局中使用

<com.shello.myapplication.view.TView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

像普通控件一样使用即可,值得注意的是使用时要一定写完整类的路径。

运行

运行效果图:
image.png

探索