8

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

给定 R.java 文件中的特定资源(id、string、drawable、...),是否有可能知道它在其文件夹中与它匹配的限定符?如果是这样,如何?

例如,如果我的设备有一个具有 hdpi 密度的屏幕,并且我在 "res/drawable-hdpi" 和 "res/drawable-mdpi" 上具有相同的文件名 "x.png",并且我即将解码此文件,我想要得到的是它从 res/drawable-hdpi 获取文件,并且通过这样做知道它具有 hdpi 密度。

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

其余的限定符 (locale, screenSize,...) 也是如此。

4

3 回答 3

1

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

dpi 示例:

    Configuration config = getResources().getConfiguration();
    Log.d("DPI ", Integer.toString(config.densityDpi));
于 2015-10-07T16:44:46.920 回答
0

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

希望这会有所帮助。

于 2013-05-28T13:18:01.107 回答
0

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

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

但是我不清楚您的要求到底是什么?您希望您的应用程序能够识别所使用的资源吗?还是您只在设计/构建期间想要这个。

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

于 2013-05-28T13:27:12.030 回答