将resourceId分配给Android中的Layout

Har*_*iya 1 android android-layout android-resources android-studio

我知道以下事情.

资源ID是32位数字格式:PPTTNNNN.PP是资源的包; TT是资源的类型; NNNN是该类型资源的名称.对于应用程序资源,PP始终为0x7f.

示例:

这些资源文件由aapt按此顺序处理:

layout/main.xml
drawable/icon.xml
layout/listitem.xml
Run Code Online (Sandbox Code Playgroud)

我们看到的第一种类型是layout这样的TT == 1.该类型下的第一个名称是"main",因此给出了NNNN == 1.最终的资源ID是0x7f010001.

接下来我们看到drawable这样TT == 2.该类型的第一个名称是"icon",以便获取NNNN == 1.最终的资源ID是0x7f020001.

最后,我们看到另一个layout具有TT == 1如前.这有一个新名称,listitem以便获得下一个值NNNN == 2.最终的资源ID是0x7f010002.

题 :

但是最近我看到一些布局文件是通过以下方式分配ID.

java代码

 this.f5160k = (ImageView) findViewById(2131755224);
 this.f5163n = findViewById(2131755219);
 this.f5162m = (LinearLayout) findViewById(2131755223);
 this.f5161l = (LinearLayout) findViewById(2131755220);
 this.f5158i = (GridView) findViewById(2131755222);
Run Code Online (Sandbox Code Playgroud)

正如this.f5160k我所知,第一部分是Declartion,但这种格式是什么2131755224.任何人都可以给我建议或知识.?

W0r*_*0le 5

2131755224 是十进制表示 0x7F1000D8

在您共享的代码中,开发人员决定硬编码十进制数而不是使用十六进制格式.但是,两者具有相同的值并指向相同的resourceID.

您可以选择使用21317552240x7F1000D8.

在R.java中,您可以找到十六进制格式的ID.