博客
关于我
Android 获取子 View 的位置及坐标的方式
阅读量:592 次
发布时间:2019-03-11

本文共 1299 字,大约阅读时间需要 4 分钟。

一、View 概述

视图 (View) 是 Android 中布局组件的核心类,负责在屏幕上显示用户界面。Versionhistory TextView 是最常见的视图类型之一,它用于显示只读文本,例如 Activity 中的提示信息。

1.2、View 分类

View 可以分为两种类型,从功能上看,主要分为单一视图和视图组。单一视图(如 TextView、EditText)没有子元素,而视图组(如 LinearLayout、RelativeLayout)可以包含多个子 View。

1.3、View 类简介

View 是所有 Android 视图组件的基类,其构造函数有四个版本,主要区分调用方式:

  • 通过 new View(Context) 创建默认
  • 通过 View(Context, AttributeSet) 创建从 XML 获得属性
  • 过_inp 代码注释可以看出,前者用于程序中直接 new 创建,后者用于 XML layouts 中定义视图。

    二、Android 坐标系

    Android 的坐标系有略微不同,是从左上角开始的.x 增大向右,.y 增大向下。它与传统数学坐标不同,但在开发中使用时需要注意这一点。

    三、View 的位置

    View 的布局由四个属性决定:Top、Bottom、Left 和 Right。每个属性指定子 View 在父 View 中的位置。例如,在 LinearLayout 中使用 gravity:center 会使子视图居中。通过 getTop() 等方法可以获取 View 的具体坐标。使用绝对值布局时,可以直接指定 x 和 y 的位置值,如 android:layout_x="200px"。

    四、获取 View 位置的方式

    要获取 View 的位置,可以通过四个方法:getTop()、getLeft()、getBottom() 和 getRight()。这些方法返回的是相对父 View 的坐标值。例如,在上文中使用 延迟加载 的技巧,可以确保 View 已绘制完成后再获取其位置。

    需要注意的是,在布局设置为绝对值布局(absoulteinlayout)时,座标是根据父控件的绝对值位置来定位的。此外,建议在获取 View 的坐标时,避免在 Activity.onResume() 中直接调用,否则可能会因为 View 未绘制完成而得到错误的初始位置值,一般建议在 ViewTreeObserver 中添加绘制完成的 监听器.

    此外,在开发中可以根据需要选择合适的布局方式。虽然绝对值布局提供了高精度的定位,但建议在大多数情况下优先使用相对值布局,以便于布局维护和代码简化。例如,利用 LinearLayout 中的 gravity 属性可以轻松实现中心对齐,降低代码的复杂性。

    最后,通过源码注释可以深入理解 View 的工作原理,并学会更高效地管理 View 的布局和定位。在实际开发中,合理使用 LayoutInterpolator anim可以实现更流畅的布局过渡效果。希望这份汇总能够帮助开发者快速掌握核心知识点,并提升日常开发效率。

    转载地址:http://isxtz.baihongyu.com/

    你可能感兴趣的文章
    OSPF技术连载20:OSPF 十大LSA类型,太详细了!
    查看>>
    OSPF技术连载21:OSPF虚链路,现代网络逻辑连接的利器!
    查看>>
    OSPF技术连载22:OSPF 路径选择 O > O IA > N1 > E1 > N2 > E2
    查看>>
    OSPF技术连载2:OSPF工作原理、建立邻接关系、路由计算
    查看>>
    OSPF技术连载5:OSPF 基本配置,含思科、华为、Junifer三厂商配置
    查看>>
    OSPF技术连载6:OSPF 多区域,近7000字,非常详细!
    查看>>
    OSPF技术连载7:什么是OSPF带宽?OSPF带宽参考值多少?
    查看>>
    OSPF技术连载8:OSPF认证:明文认证、MD5认证和SHA-HMAC验证
    查看>>
    OSPF故障排除技巧
    查看>>
    spring配置文件中<context:property-placeholder />的使用
    查看>>
    OSPF有哪些优势?解决了RIP的什么问题?
    查看>>
    OSPF理论
    查看>>
    OSPF的七种类型LSA
    查看>>
    OSPF的安全性考虑:全面解析与最佳实践
    查看>>
    OSPF知识点大全,网络工程师快速收藏!
    查看>>
    ospf综合实验2 2012/9/8
    查看>>
    OSPF规划两大模型:双塔奇兵、犬牙交错
    查看>>
    OSPF认证
    查看>>
    OSPF设计原则,命令以H3C为例
    查看>>
    OSPF路由协议配置
    查看>>