【发布时间】:2023-03-27 12:28:01
【问题描述】:
是否可以在 ViewGroup 或 Layout 上设置矩阵,以便自动影响所有子级?例如,如果你有这样的布局:
- MainActivity - 相对布局
- ViewGroup - 相对布局
- 图像视图
- LayeredDrawable
所以应该可以在 ViewGroup 中实现缩放/平移,这样 ImageView 和 LayeredDrawable(ViewGroup 的子级)都会受到影响。我想避免使用 View.OnDraw(在捏缩放的所有示例中都使用)。
有什么想法吗?
【问题讨论】:
-
对于 ViewGroup 你实际上使用 dispatchDraw 因为 onDraw 默认不被调用
-
那么在画布上设置的矩阵(onDraw的参数)会在dispatchDraw期间影响所有的孩子吗?
-
它们将根据矩阵绘制,但它们的边界不会改变
-
那么可能无法正确处理其中一个孩子上的触摸事件。例如,如果父母说旋转 45 度,那么孩子被正确绘制,但用户仍然需要在 0 度触摸呢?
-
但请参阅 MotionEvent.transform(Matrix)
标签: android android-layout layout multi-touch pinchzoom