/** * m_scrollview代表父视图 * @param descendant 子视图 * @return */ public int getRootHeight(View descendant) { int[] coord = new int[2]; float[] pt = {coord[0], coord[1]}; //转换为直接父窗口的坐标 pt[0] += descendant.getLeft(); pt[1] += descendant.getTop(); ViewParent viewParent = descendant.getParent(); //循环获得父窗口的父窗口,并且依次计算在每个父窗口中的坐标 while (viewParent instanceof View && viewParent != m_scrollview) { final View view = (View) viewParent; //转换为相当于可视区左上角的坐标,scrollX,scollY是去掉滚动的影响 pt[0] += view.getLeft() - view.getScrollX(); pt[1] += view.getTop() - view.getScrollY(); viewParent = view.getParent(); } coord[0] = (int) Math.round(pt[0]); coord[1] = (int) Math.round(pt[1]); System.out.println("coord[0]:" + coord[0]); System.out.println("coord[1]:" + coord[1]); return coord[1]; }
相关推荐
在Android开发中,获取屏幕或View的宽度和高度是常见的需求,这有助于我们精确地布局UI元素或进行自定义视图的设计。以下将详细介绍几种不同的方法来获取这些信息。 首先,我们来了解一下如何在Activity中获取整个...
在实际应用中,我们可能会结合`getWidth()`和`getHeight()`方法来获取View的实际尺寸,再配合`getLeft()`, `getTop()`, `getBottom()`, `getRight()`来精确计算View的几何信息。此外,`LayoutParams`也可以用来设置...
为确保获取到准确的状态栏高度,可以在视图控制器的`viewDidLoad`或`viewWillAppear`方法中执行: ```swift override func viewDidLoad() { super.viewDidLoad() let statusBarHeight = UIApplication.shared....
如果高度不同,需要遍历Adapter获取每个Item的高度进行累加。 博客地址提到的文章(http://blog.csdn.net/brastom/article/details/50638274)可能详细介绍了这个过程,包括如何创建OnScrollListener,如何计算滚动...
- **getLeft()和getTop()**:这两个方法返回View相对于其父视图左边缘和上边缘的距离,即X轴和Y轴的起点坐标。 - **getWidth()和getHeight()**:这些方法提供View的宽度和高度,不包括内边距和边框。 2. **测量...
在Android开发中,了解并获取设备的屏幕高度是至关重要的,尤其在设计用户界面和优化布局时。"android平板屏幕高度代码"这个标题涉及到的是如何通过编程的方式获取Android平板上不同组件,如Action Bar、Status Bar...
- `leading space to container`: 设置Label距离视图左边界的间距,值设为等于`trailing space to container`(Label距离视图右边界的间距),这样Label就能在视图宽度上居中。 - `top space to container`: 设置...
3. 使用动画API创建平滑的视图高度变化动画。 4. 将头部视图添加到ListView的顶部,并设置好初始状态。 总的来说,"listview 顶部view联动效果"是Android开发中一种增强用户体验的常见技术,它结合了ListView的滚动...
在Android开发中,获取屏幕高度、标题高度以及状态栏高度是非常常见的需求,这些信息对于布局设计和自定义视图的适配至关重要。以下将详细解释如何实现这些操作,并提供实例代码。 1. **获取屏幕高度**: 屏幕高度...
在 Android 中,系统提供了很多获取坐标值、相对距离等方法,例如 View 提供的 getTop()、getLeft()、getRight()、getBottom() 等方法,用于获取 View 的相对位置。MotionEvent 提供的 getX()、getY()、getRawX()、...
在键盘弹出的通知回调中,我们需要获取键盘的高度,以便计算出自定义视图应该移动的距离。`UIKeyboardFrameEndUserInfoKey`这个键可以从通知的`userInfo`字典中获取键盘的frame,转换为屏幕坐标系统后得到键盘的...
接下来,为了使滚动视图自动滚动,我们需要计算出输入框相对于屏幕底部的距离,如果这个距离小于键盘高度,则滚动视图需要上移。这里我们可以使用`UIApplication.shared.keyWindow?.frame.size.height`来获取屏幕...
在这个方法中,我们可以获取到滚动的距离,并根据这个距离来改变头部View的高度,从而实现伸缩效果。 以下是一个简单的实现思路: 1. **自定义ScrollView**: 创建一个名为`AnimatedHeaderViewScrollView`的类,...
在单指操作的场景下,可以模拟这个行为,当用户按住并移动手指时,根据手指移动的距离改变视图的缩放比例。 3. **UIRotationGestureRecognizer**:这个手势识别器用于识别旋转动作,是实现单指旋转视图的关键。当...
`getLeft()`方法的返回值是基于视图的布局属性计算得出的,这些属性包括`android:layout_width`(视图宽度)、`android:layout_height`(视图高度)、`android:layout_margin`(边距)等。在XML布局文件中,我们可以...
例如,你可以获取到触摸事件,分析手指滑动的距离,从而更新 `View` 的尺寸。 描述中提到的“View里是些按钮”,这意味着这个自定义 `View` 可能包含多个子组件,如 `Button`。在这种情况下,开发者需要管理这些子...
- `layout_width` 和 `layout_height`:用于定义视图的宽度和高度,可以使用`match_parent`(旧称`fill_parent`)来匹配父视图大小,或`wrap_content`来让视图根据其内容自动调整大小,也可以直接指定像素值。...
- 内边距(Padding)是指内容与视图边界之间的距离,可以通过`setPadding()`或`setPaddingRelative()`方法设置,也可以通过对应的方法获取。 - 外边距(Margins)是在`ViewGroup`中定义的,用于控制`View`与`...
获取到这两个高度后,我们可以在设置View位置时进行限制,确保View不会超出屏幕或者覆盖状态栏和标题栏。 在实际应用中,我们需要将这个MoveableView添加到Activity的布局文件中,并指定适当的父布局,例如...