如何在Android布局文件夹中以1280x720 WXGA720分辨率(如新的Galaxy Nexus)为目标?

如何在Android布局文件夹中以1280x720 WXGA720分辨率(如新的Galaxy Nexus)为目标?,android,xml,eclipse,layout,android-4.0-ice-cream-sandwich,Android,Xml,Eclipse,Layout,Android 4.0 Ice Cream Sandwich,在运行4.0.3冰淇淋三明治的Android Emulator上以WXGA720分辨率测试我的应用程序时,我的应用程序从横向视图中的layout-normal-land-854x480文件夹和纵向视图中的layout-port-480x320文件夹中获取布局资源。我希望能够专门针对此分辨率,以便我的应用程序在新手机上正确显示。我该怎么做?我试过以下方法 布局普通焊盘xhdpi 布局普通端口xhdpi 布局普通地块xlarge 布局正常,占地面积大 布局-normal-land-1280x720

在运行4.0.3冰淇淋三明治的Android Emulator上以WXGA720分辨率测试我的应用程序时,我的应用程序从横向视图中的layout-normal-land-854x480文件夹和纵向视图中的layout-port-480x320文件夹中获取布局资源。我希望能够专门针对此分辨率,以便我的应用程序在新手机上正确显示。我该怎么做?我试过以下方法

布局普通焊盘xhdpi
布局普通端口xhdpi
布局普通地块xlarge
布局正常,占地面积大
布局-normal-land-1280x720
布局-normal-port-1280x720等

…而且它仍然从上面详述的错误文件夹中获取资产

我的应用程序的目标是安卓2.1(我认为目前安卓2.1仍然是标准目标),所以据我所知,我无法使用新的布局限定符。这是虫子吗?是否有人遇到过同样的问题并找到了解决方法

我有以下文件夹配置,所有其他AVD按预期显示:

布局
布局用地
布局图-normal-land-480x320
布局图-normal-land-854x480
布局-port-480x320
布局图-端口-800x480

在运行4.0.3冰淇淋三明治的Android Emulator上以WGXA720分辨率测试我的应用程序时,我的应用程序从横向视图中的layout-normal-land-854x480文件夹和纵向视图中的layout-port-480x320文件夹中获取布局资源

如果我不得不猜测的话,您的清单中没有有效的
元素(或者可能没有
android:minSdkVersion
),因此您将进入兼容模式

另外,请不要使用像
-480x320
-854x480
这样的后缀。出于某种原因,这些内容已从文档中删除。无论你认为你在用他们解决什么问题,都可以用其他方法更好地解决

我的应用程序的目标是安卓2.1(我认为目前安卓2.1仍然是标准目标),所以据我所知,我无法使用新的布局限定符


您可以将构建目标设置为更高级别,并使用新的布局限定符。但是,较旧的设备将忽略它们,因此您仍然需要为它们使用
-normal
-land
和kin,同时使用带有新限定符的任何资源集。您可以创建资源别名以最小化代码重复。

我在正确显示布局时遇到类似问题,但我使用的是分辨率为1280×720的HTC Rezound。它使用安卓2.3.4版。 我的屏幕只显示在显示屏的上半部分,下半部分是黑色的。使用低分辨率手机,一切都正常显示

我完成了创建新布局目录(layout xhdpi、layout large、layout-1280x720、layout-1200x700等)和修改布局文件以匹配更大分辨率的练习,但每次尝试都失败了,应用程序总是只显示在屏幕的上半部分。我已经读了我的文件 没有找到解决问题的方法。 我最终修复了它,解决方案与添加为更高分辨率设置的新布局目录毫无关系! 解决方案完全是关于AndroidManifest.xml文件中的“usesdk”语句。我的原始清单包含以下声明:

<uses-sdk minSdkVersion="8"/>

如果只指定了最低sdk版本,图形将无法在Rezound上正确显示。 但是,在只更改AndroidManifest.xml中的一行(并且不进行其他更改)后,手机会正确显示所有屏幕:

<uses-sdk android:targetSdkVersion="9" minSdkVersion="8" />


为什么这会修复它,而不是文档化的方法?我不知道!我在安卓系统中发现了许多隐藏的联系,似乎不符合逻辑的解释。有人能给我解释一下为什么更改uses sdk语句对于在更高分辨率的显示器上显示非常重要吗?

我以前回答过这个问题,但我之前的回答只允许我填充显示器(它之前只填充了前三分之一),但我永远无法使用其他布局。 我使用的是HTC Rezound,它有1280×720的显示屏。我需要找出安卓认为它是什么样的显示器。我在onCreate处理程序中添加了以下代码:

//看看我们有什么样的显示器
int screenLayout=getResources().getConfiguration().screenLayout;
if((屏幕布局和配置.屏幕布局大小大小)=配置.屏幕布局大小大小大小大小)
LogMessage(“Main onCreate”、“Info”、“屏幕大小很小”);
else if((屏幕布局和配置。屏幕布局大小正常)=配置。屏幕布局大小正常)
日志消息(“主onCreate”、“信息”、“屏幕大小正常”);
else if((屏幕布局和配置。屏幕布局大小=大)=配置。屏幕布局大小=大)
LogMessage(“Main onCreate”、“Info”、“屏幕大小过大”);
如果((screenLayout&Configuration.screenLayout_LONG_YES)=Configuration.screenLayout_LONG_YES)
LogMessage(“Main onCreate”、“Info”、“屏幕长”);
//获取指标
DisplayMetrics=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(度量);
int heightPixels=metrics.heightPixels;
int widthPixels=metrics.widthPixels;
int densityDpi=metrics.densityDpi;
浮动密度=度量。密度;
float scaledDensity=度量。scaledDensity;
float xdpi=metrics.xdpi;
float ydpi=metrics.ydpi;
日志消息(“主onCreate”、“信息”、“屏幕宽x高像素:“+widthPixels+“x”+heightPixels”);
日志消息(“主onCreate”、“信息”、“屏幕X X Y dpi:+xdpi+“X”+ydpi”);
日志消息(“Main onCreate”、“Info”、“density=“+density+”scaledDensity=“+scaledDensity+
“密度dpi=”+密度dpi);
日志中的结果是:

Info, Main onCreate, Screen size is Normal
Info, Main onCreate, Screen size is Long
Info, Main onCreate, Screen W x H pixels: 720 x 1280
Info, Main onCreate, Screen X x Y dpi: 345.0566 x 342.23157
Info, Main onCreate, density = 2.0  scaledDensity = 2.0  densityDpi = 320
有了这个,我意识到Android称之为正常显示
<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true"
 />

<uses-sdk android:targetSdkVersion="9" android:minSdkVersion="8" />