【问题标题】:Can we use and draw view inside custom view using canvas on Android?我们可以在 Android 上使用画布在自定义视图中使用和绘制视图吗?
【发布时间】:2022-11-19 00:54:49
【问题描述】:

我想知道是否可以在使用画布执行绘图的自定义视图中使用和绘制诸如 TextView 或 Chronometer 之类的视图。

我的目标是在我的自定义视图中重用来自 Android 的 Chonometer 视图,并将其绘制在我所有的画布层之上。

我搜索了一整天,android 资源,第 3 方库,但无法弄清楚。

我还注意到在 View 类上没有办法设置边界或定位或其他东西,所以我可能无法做我想做的事。

任何帮助将不胜感激! :)

谢谢。

就像是:

class CustomView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {


    private val chronometer: Chronometer = Chronometer(context)


    override fun onDraw(canvas: Canvas) {
        //Here I perform all my others drawing 


        //Does not work
        chronometer.draw(canvas)
    }


}

【问题讨论】:

    标签: android canvas view drawing android-custom-view


    【解决方案1】:

    您可以将视图放在自定义视图中,但您不会那样做。相反,您继承自 ViewGroup 而不是 View。然后你实现 onMeasure 和 onLayout 来布局和测量你自己和你的子视图。然后你不需要做任何事情来绘制它——子视图会自己绘制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2014-12-25
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多