如何解决具有多个转换坐标的 Android 大画布无需触摸即可滚动到特定绘图
在 android 中使用自定义视图,宽度和高度更大,为 1000x1000,并包裹在水平滚动视图中。并使用 canvas.drawPath(path,paint)
绘制路径代码片段
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="125dp"
android:layout_height="200dp">
<LinearLayout
android:id="@+id/childLinear"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<CustomCanvas
android:id="@+id/canvas"
android:layout_width="1000dp"
android:layout_height="1000dp" />
</LinearLayout>
</HorizontalScrollView>
在开始绘制路径之前,使用canvas.translate(width / 2f,height / 2f)将原点移动到画布的中心。
有一个小的水平滚动视口用于滚动,并且
需要滚动 drawPath 线始终居中 滚动视图视口。
坐标平移后,起始x,y移到中心,根据条件进行多次平移。
如何计算线的原始 x,y 位置并滚动到该图形?
谢谢,感谢帮助。
解决方法
我自己想通了,只是存储了视图 x,y 和画布翻译 x,y 之间的差异,如下所示。
var offsetX = width/2f
var offsetY = height/2f
translate(width/2f,height/2f)
offsetX+= 100
offsetY+= 100
translate(100,100)
所有画布操作结束,offsetX,offsetY 将有视图中最后绘制的坐标。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。