Time will tell.
在前面的章节里,分享了通过获取控件坐标点来获取点击事件所需要的点击位置,那么还有其他获取控件点击事件所需要点击位置的方法吗?当然有。
在不同大小屏幕的手机上获取控件的坐标点,不是一样的。因此在不同的机型上需要重新获取坐标点。如果操作控件特别多,那么获取控件的坐标点就会特别繁琐。因此可以通过获取控件 ID 来避免获取控件坐标点的这种弊端。
控件 ID 的获取主要通过HierarchyViewer
,下面从打开和使用两方面进行讲解。
1、HierarchyViewer 打开方式
HierarchyViewer
的打开方式有两种:
-
一种是eclipse中打开HierarchyView视图;
-
第二种是命令行中执行sdk/tools/hierarchyviewer.bat。
HierarchyViewer
默认只能在非加密设备使用,例如工程机,工程平板或者模拟器。如果要在手机上使用HierarchyViewer
,你需要在你的应用中添加一个开源库View Server
。链接地址:https://github.com/romainguy/ViewServer ,里面有讲解如何启动真机View Server
。
方式一:
连接你的真机设备或打开模拟器,在 eclipse 中, 依次选择 Window - Open Perspective - Other,在 Other 中,选择HierarchyView
视图,即可打开。
方式二:
连接您的真机设备或打开模拟器,运行 cmd 窗口,进入到 sdk/tools 目录下,输入命令hierarchyviewer.bat
,运行hierarchyviewer
。
或直接在 sdk/tools 目录下,找到hierarchyviewer.bat
,双击运行。
未开启夜神模拟器的HierarchyViewer
:
开启夜神模拟器后的HierarchyViewer
:
2、HierarchyViewer 获取控件 ID
HierarchyViewer
启动后,首先会看到的第一个窗口显示了设备和模拟器的列表。点击左边的箭头,就会展开当前设备或模拟器的Activity
对象列表。列表中显示了设备或模拟器上, UI 当前可视的所有Activity
对象。
这些对象按照它们的 Android 组件名称列出来。列表中的内容包含应用的Activity
对象和系统的Activity
对象。
当模拟器Activity
画面变更后,点击refresh
可以加载新的页面布局信息。
从列表中选择你的 activity 名称,双击,或点击菜单栏的 Load View Hierarchy
按钮,进入View Hierarchy
窗口,查看它的view
层次结构;或者点击 Inspect Screenshot
按钮,进入Pixel Perfect
窗口,从而查看 UI 的一个放大图像。我们这里点击进入View Hierarchy
窗口。
从下图中看到模拟器此 activity 的画面布局信息,左边部分是hierarchy
通过树形结构展示的布局形式,右下角是模拟器上当前页面的 UI 布局信息。