gpt4 book ai didi

Android ScaleAnimation 不缩放可点击区域

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:53 32 4
gpt4 key购买 nike

我的布局结构如下:

LinearLayout1
LinearLayout2
EditText

我正在使用 LayoutAnimationController 将 ScaleAnimation 应用于 LinearLayout1,以便层次结构中的所有 View 都按相同的比例缩放。

应用 ScaleAnimation 后,所有 View 都正确缩放,但 EditText 不再响应落在它最初占据的空间之外的点击。换句话说,似乎 EditText 的可点击区域不会随着视觉表示而缩放。

是否有解决此问题的方法,或者我在调用 ScaleAnimation 之前或之后丢失了?

最佳答案

万一其他人正在寻找这个问题的答案,这里是我想出的解决方案。我在 LinearLayout1 中捕获点击事件,并使用 getHitRect 在 View 层次结构中向下执行手动递归 HitTest ,并将比例因子应用于接收到的尺寸。

这是我对 View 的 HitTest 的实现。

public boolean scaledHitTest(float zoomScale, int x, int y) {
Rect rect = new Rect();
getHitRect(rect);
rect.top = (int) (rect.top * zoomScale);
rect.bottom = (int) (rect.bottom * zoomScale);
rect.left = (int) (rect.left * zoomScale);
rect.right = (int) (rect.right * zoomScale);

return rect.contains(x, y);
}

关于Android ScaleAnimation 不缩放可点击区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5808234/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com