我想制作一个带有缩放选项的扫雷应用程序(Android/Java),100%或200% - 目前没有可变缩放,没有缩放手势。
我可以创建一个宽度和高度是屏幕两倍大的视图,然后移动它吗?或者我必须移动所有按钮和标签吗?
我想在顶部有一个工具栏,上面有剩余的炸弹数量,但不会移动。如何获取屏幕其余部分的尺寸?
我发现的唯一平移/手势示例是图像,它们取决于图像的大小,而不是屏幕的大小。此外,它们不会移动按钮和标签。
您没有显示任何计划如何绘制按钮、工具栏、标签等的代码,因此很难给出更详细的答案。
作为初学者,最有可能生成您想要的内容的是使用 ConstraintLayout 将按钮、工具栏、标签等放置在正确的位置,并使板区域与其他约束相匹配。还要确保此布局不大于屏幕(因此不在任何可滚动布局中)
现在我会阅读 Android 如何绘制它的 UI 指南文档。
从中您应该能够看到,您需要通过扩展这些类之一来创建自定义 View 或 ViewGroup 来处理绘制板(您想要缩放的位)
在该 View/ViewGroup 中,您将重写
onMeasure
方法,其中父 ConstraintLayout 应将视图的大小传递给您的自定义 View/ViewGroup,以便其适合屏幕(如果设置正确)
然后,您可以在绘制视图或传递给 ViewGroups 子视图时使用双倍的测量值。
这意味着您的视图/视图组将部分脱离屏幕,但您的按钮将在视图/视图组上设置一个Matrix,以将其设置为沿您想要的各个方向平移(移动)并缩放(缩放)所需的量使 View/ViewGroup 无效(以使用新的 Matrix 重新绘制它)。
(如果您不太熟悉矩阵数学,您还可以使用各种 setTranslationX、setTranslationY、setScaleX 和 setScaleY)来间接更改 View/ViewGroup 的矩阵)