【问题标题】:How to create a paint application like Messenger's emoji paint on captured photo in Kotlin如何在 Kotlin 中在捕获的照片上创建像 Messenger 的表情符号绘画这样的绘画应用程序
【发布时间】:2019-10-04 05:59:21
【问题描述】:

所以我正在制作一个需要绘制花环、灯泡和其他装饰的应用程序。我有一个代码可以在 Action_Move 上创建一个图像视图,但应用程序崩溃了。看下面的代码

fun drawLights(){
     val listener = View.OnTouchListener(function = { view, motionEvent ->
         val x = motionEvent.getX()
         val y = motionEvent.getY()
         when (motionEvent.action){
             MotionEvent.ACTION_DOWN -> {
                 Toast.makeText(this,"Action Down",Toast.LENGTH_SHORT).show()
             }
             MotionEvent.ACTION_MOVE -> {
                 Toast.makeText(this, "Moving", Toast.LENGTH_SHORT).show()
                 ////Imageview Creation Here using late init var
             }
             MotionEvent.ACTION_UP -> {
                 Toast.makeText(this,"Done" ,Toast.LENGTH_SHORT).show()
             }
         }
         true
     })
     edit_Canvas.setOnTouchListener(listener)
}

这里有没有人知道任何与此相关的博客或已经解决了这个问题?谢谢!

【问题讨论】:

  • 如果您在 ACTION_MOVE 上创建 ImageView,我认为您的代码会因为内存不足而崩溃。每次触摸屏幕时都会调用 onTouch,因此它最终会进行大量调用。
  • 从技术上讲是的,我怎样才能以正确的方式做到这一点?

标签: kotlin paint


【解决方案1】:

您需要在 Android Canvas 上查找有关绘图的主题。那里有很多示例代码

这是来自官方文档在画布上绘图https://developer.android.com/training/custom-views/custom-drawing

【讨论】:

  • 我已经看起来像你提供的东西,但似乎没有什么能解决我的任务:(
  • 我发送的链接足以为您提供合适的工具来完成这项工作。您不应该每次都添加 ImageView,而是在移动时在画布上绘制图像。 ImageView 是需要更多内存才能显示的完整视图。画布只是在屏幕上绘制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 2011-10-26
  • 2021-11-19
相关资源
最近更新 更多