kotlin安卓:每天一个组件:自定义组件

本文深入探讨了在Kotlin中创建自定义Android组件的过程,讲解了如何继承View类并重写关键方法来实现组件的功能,同时提到了以编程方式构建组件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义组件:需要继承View类,重写部分方法

 自定义:
class myView: View{
    private var paint = Paint()//画笔对象
    private var H = 54F//高度
    private var W = 54F//宽度
    constructor(context: Context):super(context)//初始化构造器
    constructor(context:Context,set:AttributeSet):super(context,set)//初始化次构造器
    var context2 = context
    override fun onDraw(canvas: Canvas?) {//重写onDraw
    super.onDraw(canvas)
    paint.color = Color.RED
    canvas!!.drawCircle(W,H,15F,paint)
}

    override fun onTouchEvent(event: MotionEvent?): Boolean {//重写触控事件
        H = event!!.y
        W = event.x
        Toast.makeText(context2,"X:${event.x},Y:${event.y}",Toast.LENGTH_SHORT).show()
        invalidate()//通知组件重绘
        return true
      }
}
实例化:
val myView = myView(this)//实例化自定义组件
layout.addView(myView)//加载进布局

以编程的方式创建组件:

1.1编程的方法创建UI

class MainActivity : Activity() {

       override fun onCreate(savedInstanceState: Bundle?) {
           super.onCreate(savedInstanceState)
           val layout = LinearLayout(this)//动态创建layout
           super.setContentView(layout)//设置layout显示
           layout.orientation = LinearLayout.VERTICAL//设置方向
           val btn = Button(this)//实例化btn对象
           btn.setOnClickListener{//设置按钮建监听器
               Toast.makeText(this,"我是动态创建的按钮",Toast.LENGTH_SHORT).show()
           }
           btn.text = "我是按钮"//设置按钮文本
           //设置按钮长宽
           btn.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)
           layout.addView(btn)//添加按钮进layout
          }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值