【问题标题】:change view size relative to anchor point更改相对于锚点的视图大小
【发布时间】:2020-02-17 19:50:54
【问题描述】:

我正在尝试让用户能够从边缘缩放图像(触摸边缘然后拖动它) 我一直在寻找一种方法来使用 LayoutParams 动态更改视图大小,同时保持视图位置锚定到特定边缘。

fun View.setSize(width: Int, height: Int) {
val layoutP = layoutParams as ConstraintLayout.LayoutParams
layoutP.width = width
layoutP.height = height
layoutParams = layoutP
requestLayout()}

尝试上述代码时的默认行为是更改视图的宽度和高度,同时保持中心点为中心点。
我尝试在更改宽度和高度后设置所需的 x,y 但这导致振动行为居中然后是我的新 x,y

我正在寻找与在缩放动画上设置 pivotY 和 pivotX 相同的效果。

【问题讨论】:

  • 我认为您应该在执行拖动时尝试使用缩放动画,并且仅在触摸完成时修改布局参数。每一帧都重做布局代价太高而无法平滑。
  • 我实际上是这样做的,但主要问题仍然存在,当触摸完成时会发生振动(调整大小将视图移动到中心,然后我将其移回锚定)

标签: java android kotlin


【解决方案1】:

由于我从未使用过这个事实,我可以把这个参考,但我认为文档对此非常清楚:

https://developer.android.com/training/gestures/scale

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 2017-06-25
    • 2020-09-06
    • 2015-10-20
    相关资源
    最近更新 更多