点一下按钮画一条线java_我想点击按钮时开始绘制线条,当我将鼠标悬停在另一个按钮上时结束绘制...

我尝试通过扩展View并覆盖onDraw和onTouchEvent方法来制作自定义视图 . 当customview不在前景时(在其他视图后面绘制线条)可以正常工作,但是当我将它带到前台时,事情变得奇怪,我无法与按钮交互 . 我的问题类似于模式锁定,但是当我检查代码时,人们手动编写按钮命中框(如果手指悬停在某些坐标事件触发器上) .

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

val button = findViewById(R.id.button1)

button.setOnClickListener {

}

}

override fun onResume() {

super.onResume()

val newView = MyView(this)

frameLayout1.addView(newView)

// constraintLayout.bringToFront()

}

class MyView(context: Context)// TODO Auto-generated constructor stub

: View(context) {

private val paint = Paint()

var startX: Int = 0

var startY: Int = 0

var endX: Int = 0

var endY: Int = 0

override fun onDraw(canvas: Canvas) {

super.onDraw(canvas)

paint.strokeWidth=21f

paint.color = Color.parseColor("#CD5C5C")

canvas.drawLine(startX.toFloat(),startY.toFloat(),endX.toFloat(),endY.toFloat(),paint)

}

override fun onTouchEvent(event: MotionEvent): Boolean {

when (event.action) {

MotionEvent.ACTION_DOWN -> {

startX = event.x.toInt()

startY = event.y.toInt()

endX = event.x.toInt()

endY = event.y.toInt()

invalidate() }

MotionEvent.ACTION_MOVE -> {

endX = event.x.toInt()

endY = event.y.toInt()

invalidate()

}

MotionEvent.ACTION_UP -> {

endX = event.x.toInt()

endY = event.y.toInt()

invalidate() }

}

return true

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值