我正在扩展视图的自定义视图中
我有一个数组列表,其中包含一对Path和Paint
private lateinit var fingerPathForPair: Path
private lateinit var fingerPaintForPair:Paint
private var arrayListFingerPath = arrayListOf< Pair< Path, Paint > >()
为什么当我在下面的代码段中调用第二行(我的代码位于MotionEvent.ACTION_DOWN
部分中View的触摸侦听器内)时,我仍然可以添加行到fingerPathForPair
的位置,例如当我使用触摸监听器的fingerPathForPair.lineTo(touchPosX, touchPosY)
部分中的代码MotionEvent.ACTION_MOVE
fingerPathForPair = Path()
arrayListFingerPath.add(Pair(fingerPathForPair, fingerPaintForPair))`
如果您认为发布全班课程对您有帮助,请询问,我会进行编辑。
用于删除用户在画布上进行的最后笔划的代码
fun undo()
{
// Get paths from main finger paths array list and add it to the undo store
if (this.arrayListFingerPath.isNotEmpty())
{
// Remove the last modified path from the main arraylist of finger paths and add it to the undo store
this.arrayListFingerPathUndoStore.add(this.arrayListFingerPath.removeAt(this.arrayListFingerPath.lastIndex))
invalidate()
}
}