我有一个非常简单的问题:
给定R.java文件中的特定资源(id,string,drawable,...),是否可以知道它在与其匹配的文件夹上有哪些限定符?如果是这样,怎么样?
例如,如果我的设备有一个hdpi密度的屏幕,并且我在“res / drawable-hdpi”和“res / drawable-mdpi”上有相同的文件名“x.png”,我即将解码这个文件,我想得到的是它从res / drawable-hdpi获取文件,并通过它知道它具有hdpi密度。
当然,在这个例子中,如果文件存在于其他文件夹中,但不存在于hdpi文件夹中,我希望它告诉我在解码文件时将使用哪个文件。
其他限定符(locale,screenSize,...)也是如此。
答案 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));