2012-03-14 55 views
3

我直接在与电脑相连的手机上从SDK运行我的应用程序。有什么方法可以确定(使用SDK工具)哪个dpi可绘制文件夹实际上用于在应用程序中显示特定的png文件?如何在SDK中确定哪个资源文件实际使用?

编辑: 要说清楚。我想自己如何使用其他方法获取这些信息: 1.在不同的dpi文件夹下将不同的文件置于相同的名称下 2.写一小段代码以编程方式检查它 现在真正的问题是:我可以得到这个信息直接在SDK(DDMS或Hierarchy Viewer)中?

+0

您无权访问的设备 – 2012-03-14 10:36:35

回答

3

您无法找到正在使用哪个可绘制文件夹但是您可以找到使用哪个“密度”。

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

然后您可以使用metrics.densityDpi来查找使用哪个DPI。它会是DENSITY_DEFAULT,DENSITY_HIGH,DENSITY_LOW,DENSITY_MEDIUM等,您可以比较并找出。

如果是 DENSITY_HIGH - 绘制 - 华电国际 DENSITY_LOW =绘制-LDPI DENSITY_MEDIUM - 绘制-MDPI

看到这里的文档http://developer.android.com/reference/android/util/DisplayMetrics.html

+0

这并不一定总是如此......例如,原始Nexus 7是TVDPI ...建议不提供TVDPI资源,但要提供正常的ldpi,mdpi,hdpi和xhdpi资源,并让Android OS选择要从中拉出哪个文件夹并相应地缩放它们 – Justin 2013-08-10 05:09:00

0

你不必知道这件事。在每个drawable- *文件夹中,您将资源放在同一个名称中,而android会选择必须显示的drawable。

+0

资源Android SDK中的文件夹我知道这一点,但我想检查我在屏幕上看到的图形文件是否真的是我认为应该使用的图形文件。当然,我可以检查它在不同的dpi文件夹下将不同的文件放在相同的名称下,但也许有一些更聪明的方法来实现这一点。 – Izydorr 2012-03-14 10:36:21

+0

好吧android在屏幕的基础上加载资源。所以如果你的屏幕是hdpi,android会在hdpi文件夹中加载资源。 – Blackbelt 2012-03-14 10:38:34

+0

是的。那么这些信息是否显示在DDMS或Hierarchy Viewer中的某个地方,还是必须使用“假”图像或进行编程测试等“技巧”来检查它? – Izydorr 2012-03-14 10:45:53

0

您可以尝试添加具有相同名称的不同图形。通过这个,你可以知道手机正在使用哪个文件夹的图形。

check programmatically屏幕类型是您的设备(hdp,mdpi,ldpi),然后将自动使用相应的可绘制文件夹。

+0

是的,我知道所有这些选项。我只是想让那个SDK可以在DDMS或Hierarchy Viewer中给我这些信息。 – Izydorr 2012-03-14 10:44:13

相关问题