哪种Android布局可用于平移和缩放

哪种Android布局可用于平移和缩放,android,android-layout,android-relativelayout,Android,Android Layout,Android Relativelayout,我正在创建一个应用程序作为一个挑战,用户可以快速生成一个区域的示意图布局。有一个开始节点,用户可以向上、向右、向左或向下扩展该节点或创建新节点。每个节点都描述了该区域中的某些东西(公园、树林等)。节点之间的距离总是相同的。基本上,你一个节点一个节点地构建这个布局(就像你在这个视频中一个节点一个节点地创建思维导图:) 我希望人们能够平移和缩小以快速从布局的一端移动到另一端,从而快速添加或编辑布局。除了我不知道该用什么布局。使用水平和垂直布局似乎不是解决方案。。。(没有缩放,而且相当笨重,因为你不能

我正在创建一个应用程序作为一个挑战,用户可以快速生成一个区域的示意图布局。有一个开始节点,用户可以向上、向右、向左或向下扩展该节点或创建新节点。每个节点都描述了该区域中的某些东西(公园、树林等)。节点之间的距离总是相同的。基本上,你一个节点一个节点地构建这个布局(就像你在这个视频中一个节点一个节点地创建思维导图:)

我希望人们能够平移和缩小以快速从布局的一端移动到另一端,从而快速添加或编辑布局。除了我不知道该用什么布局。使用水平和垂直布局似乎不是解决方案。。。(没有缩放,而且相当笨重,因为你不能对角移动)

奖金: 如果距离和规则始终相同(类似于视频中显示的方式),您将如何以编程方式添加这些新节点


我看到了这篇关于动态添加一个imageview和按钮的博客文章,这听起来像是一个解决方案,对吗

您应该覆盖
SurfaceView
并使用方法
onDraw
绘制矩形和文本,使用您的曲面,您可以使用用户触摸的三角形算法缩放和平移矩阵,为了使所有内容保持相同的比例,您始终使用1x1矩阵来存储原理图布局,并且仅从SurfaceView进行缩放。这种方法比在屏幕上调整Android视图要容易得多,但如果您想遵循此路径,还可以从ViewGroup中选择setScaleX/Y setScrollX/Y应用于屏幕的根目录,但您需要通过触摸读取用户输入。

只需使用此库即可

implementation 'com.jsibbold:zoomage:1.3.1'
在XML中

<com.jsibbold.zoomage.ZoomageView
        android:id="@+id/img_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
        android:scaleType="matrix"
        app:zoomage_animateOnReset="true"
        app:zoomage_doubleTapToZoom="true"
        app:zoomage_maxScale="9"
        app:zoomage_minScale="0.5"      
        app:zoomage_zoomable="true" />

更多详情