【问题标题】:Android: post-processing drawn Views [closed]Android:后处理绘制的视图 [关闭]
【发布时间】:2016-02-14 05:33:47
【问题描述】:

我有一个自定义 ViewGroup(作为根视图)和其他一些视图,我想在其中的一部分上添加视觉效果,影响其子级。

根视图没有背景,因此 drawonDraw 从未被调用过。

正如 pskink 所述,我可以在自定义 ViewGroup 的 dispatchDraw 中完成此操作。当我只是为了测试,在Canvas上画一个圆圈,由dispatchDraw获得,它出现了。但我无法访问 Canvas 内容,即使 private Bitmap mBitmapnull

  • 如何获取(和修改)像素?
  • 系统如何利用没有BitmapCanvas

【问题讨论】:

  • ViewGroup#dispatchDraw方法

标签: android android-layout render


【解决方案1】:
  1. root RelativeLayout 混合叠加层和列表
  2. 只需覆盖根 RelativeLayout 绘制方法,并创建您的 Bitmap,然后用它创建一个Canvas对象,调用super 用你的画布对象绘制方法,你会得到你的叠加层 并列出位图中绘制的内容,然后您可以通过 你自己
  3. 从原生代码,从 ViewRootImpl 传递到视图树中的所有视图,如果你的硬件控制器打开,画布对象是 GLES20RecordingCanvas 的实例

【讨论】:

  • 唐,感谢您的反馈。 1. 当然。但是,如 pskink 所述,它很可能在 dispatchDraw 方法中执行此操作。 2. rootdrawonDraw 都从未调用过。 3. 你的意思是我需要使用NDK?
猜你喜欢
  • 1970-01-01
  • 2011-01-27
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多