当前位置: 首页 > 知识库问答 >
问题:

如何获取给定资源的限定符(使用时)?

公良光熙
2023-03-14

我有一个非常简单的问题:

给定R. java文件中的特定资源(id、字符串、可绘图...),是否可以知道它的文件夹中与之匹配的限定符?如果是,如何?

例如,如果我的设备有一个具有hdpi密度的屏幕,我在“res/drawable hdpi”和“res/drawable mdpi”上有相同的文件名“x.png”,我要解码这个文件,我想得到的是它从res/drawable hdpi获得文件,这样做就知道它具有hdpi密度。

当然,在本例中,如果文件存在于其他文件夹中,但不在hdpi文件夹中,我希望它告诉我在解码文件时将使用哪个文件夹。

其余限定符(语言环境、屏幕大小、...)也是如此。

共有3个答案

乌灿
2023-03-14

我不认为android框架为应用程序提供了一种机制来确定使用了哪些资源。

但是,您始终可以根据android资源限定符文档中指定的规则制定规则。

然而,我不清楚你的具体要求是什么?您是否希望应用程序能够识别使用了哪些资源?或者,您是否只希望在设计/构建期间使用此功能。

至于找出正在使用的资源,你可以很容易地根据屏幕密度、屏幕大小、当前手机区域设置和当前方向制定一个逻辑,所有这些都可以通过android中的各种API获得。

贝杜吟
2023-03-14

如果你的目标是大量的设备,这个问题会发生很多,所以我决定创建自己的简单应用程序来找出正在使用的绘图。这是链接。

希望这会有所帮助。

陆洲
2023-03-14

使用http://developer.android.com/reference/android/content/res/Configuration.html

dpi示例:

    Configuration config = getResources().getConfiguration();
    Log.d("DPI ", Integer.toString(config.densityDpi));
 类似资料:
  • 问题内容: 我正在查看的页面包含: 我想获取div中的所有文本,除了中的文本。(我想获得“文本1”,“文本3”和“文本4”)。可能有几个元素,或者根本没有。而且可能有一些元素,甚至一个元素都在另一个元素之中,或者根本没有。 我想通过获取div的所有html源并使用正则表达式删除元素来做到这一点。但是selenium.get_text不会返回html,而只是返回文本(全部!)。 我知道我可以使用正则

  • null 我相信一定有更简单的方法。 编辑1:传递区域Id不是问题,我们可以做到。

  • 问题内容: 我得到一个20个字符的数字ID,看起来像 10527391670258314752 ,给定这个ID,我如何获得与之关联的用户名? 该表如下所示: 然后将从数据库中检索出的用户名存储到中。 我已经试过了: 输出将代替名称。 问题答案: 我强烈建议避免mysqli扩展。您应该使用一些数据库抽象库,而不是直接使用mysqli函数。mysqli类不适合单独使用。 如果您真的想使用纯mysqli

  • 问题内容: 我需要在Java项目中获取资源映像文件。我正在做的是: 目录结构如下: 事实是,我总是会得到该文件不存在的信息。我尝试了许多不同的方法,但无法解决问题。有什么提示吗? 问题答案: 前导斜杠表示类路径的根 斜线而不是路径中的点 你可以getResource()直接在课堂上致电。

  • 问题内容: 首先,我是一个新手,我正在尝试使用mediastore获取媒体文件的详细信息,并将详细信息保存在List中。这是我在做什么 在这里,我从内部和外部uri获取文件详细信息并将其保存在中。但是我无法获取特定列的详细信息。这就是我正在尝试的 我如何从另一个类或片段中的Item类获得以下详细信息作为数组。 问题答案: 您可以像这样获取数组项。例如,这是示例 如果要将数据设置为listview,

  • 22.7.2.定义一个新的 source set 要定义一个新的源组, sourceSets {} 块中引用它.下面是一个例子: 例22.5.定义一个新的 source set build.gradle sourceSets { intTest } 当你定义一个新的 source set, java 插件会为该 source set 添加一些如Table 22.6, “Java plugi