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

时间:2013-05-28 13:09:28

标签: android android-resources qualifiers

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

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

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

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

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

3 个答案:

答案 0 :(得分:0)

如果您针对大量设备进行定位,则会出现此问题,因此我决定创建自己的简单应用程序以找出正在使用的可绘制内容。Here是链接。

希望这会有所帮助。

答案 1 :(得分:0)

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

但是你总是可以根据android资源限定符文档中指定的规则来制定规则。

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

至于确定使用哪种资源,您可以根据屏幕密度,屏幕大小,当前手机区域设置和当前方向轻松制定逻辑,所有这些都可通过Android中的各种apis获得。

答案 2 :(得分:0)

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

dpi的例子:

    Configuration config = getResources().getConfiguration();
    Log.d("DPI ", Integer.toString(config.densityDpi));