在上一节从理论上讲解了activity,window,decor,view之间的关系,该小节我们编写源代码,去验证这些知识点。在原来的AS工程APP_0001_LEDDemp-V3上进行修改,先把APP_0001_LEDDemp-V3改成APP_0008_ViewHierarcky,然后打开该工程。
在原来的基础上修改layout下的content_main.xml文件,先修改一下button按钮的显示信息(修改为):
然后修改MainActivity.java文件,根据前面的学习,我们知道,在点击Botton时,会执行 class MyButtonListener implements View.OnClickListener 中的onClick(View view)方法。删除该方法下的所有内容,只调用函数printViewHierarchy:
class MyButtonListener implements View.OnClickListener {
@Override
public void onClick(View view) {
View decorView = getWindow().getDecorView();
printViewHierarchy(decorView,0,-1);
}
}
然后printViewHierarchy的实现如下:
/*传入三个参数,parent为遍历的对象,level为所处节点等级,如根节点为一个*,其孩子为两个*
childidx为孩子的序列号*/
public void printViewHierarchy(View parent, int level, int childidx){
/* 打印格式,
* * DecorView child -1 (x, y), (w, h)
* ** FrameLayout child 0 (x, y), (w, h)
* *** TextView child 0 (x, y), (w, h)
* ** FrameLayout child 1 (x, y), (w, h)
* *** Button child 0 (x, y), (w, h)
* *** TextView child 1 (x, y), (w, h)
* *** FrameLayout child 2 (x, y), (w, h)
*/
int i;
String levelStr = "*";
for (i = 0; i
关注
打赏
热门博文
- 史上最全slam从零开始-总目录
- (01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解
- 目标检测00-00:mmdetection(Foveabox为例)-目录-史上最新无死角讲解
- 风格迁移1-00:Liquid Warping GAN(Impersonator)-目录-史上最新无死角讲解
- 姿态估计1-00:FSA-Net(头部姿态估算)-目录-史上最新无死角讲解
- 姿态估计0-00:DenseFusion(6D姿态估计)-目录-史上最新无死角讲解
- 3D点云重建0-00:MVSNet(R-MVSNet)-目录-史上最新无死角讲解
- 视觉工作项目-为后来的你,提供一份帮助!
- 行人检测0-00:LFFD-目录-史上最新无死角解读
- 行人重识别0-00:DG-Net(ReID)-目录-史上最新无死角讲解