5

如何在具有相同 sw800dp 最小宽度的 ICS 上为不同的 dpi 放置不同的资源?

详细信息:有两款采用 ICS 4.0.4 的平板电脑。第一个具有 1280x800 分辨率和 mdpi (160) 密度​​。第二个具有 1920x1200 分辨率和 hdpi (240) 密度​​。因此,就最小宽度而言,它们都具有相同的 sw800dp 限定符,但具有不同的 mdpi/hdpi 密度限定符。

对于这两种分辨率,我需要有不同的布局和图像。

所以我创建了两个目录:

布局-sw800dp-mdpi

布局-sw800dp-hdpi

我以为每个设备都会根据最小的宽度和密度来选择自己的目录。但是它们都从同一个 sw800dp-hdpi 文件夹中获取资源!

我很困惑,不知道如何为这两种不同的分辨率分离资源。

非常感谢任何帮助。提前致谢。

4

2 回答 2

2

您应该使用位于 /layout/sw800dp 中的相同布局,并创建 /drawable-mdpi 、 /drawable-hdpi 来放置您的自定义可绘制对象,系统将使用相同的布局将正确的布局应用于每个设备。这些设备应该具有相似的尺寸和外观......

于 2012-11-28T16:50:24.167 回答
1

使用它来获得密度:

float density = getBaseContext().getResources().getDisplayMetrics().density;

屏幕高度:

int h = 0;

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

h = (int) display.getHeight();

屏幕宽度:

int w = 0;

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

w = (int) display.getWidth()

之后,只需选择正确的资源。

于 2012-09-06T21:08:54.907 回答