我有一个奇怪的问题。
在你想要责备我的时候,请注意我正在开发一个定制版的Jelly Bean。因此,“通常的好方法”可能不起作用,必须采用一些不太正规的方法。
我有一个APK文件,其中包含以下内容:
layout
layout-mdpi
layout-land
layout-large-mdpi
layout-large-land-mdpi
layout-large-hdpi
layout-large-xhdpi
其他一些指标代码返回了以下结果:
D/AppDemo( 2091): measured width: 1920 PE width: 1920 scaleFactor = 1.0
D/AppDemo( 2091): [ANDROID] measured width: 1920 measured height: 1080
D/AppDemo( 2091): [ANDROID] scale for resources: 2.0 xdpi: 320.0 ydpi: 320.0
D/AppDemo( 2091): [ANDROID] screen density: xhdpi
D/AppDemo( 2091): [ANDROID] screen size: large
D/AppDemo( 2091): [ANDROID] using layout: layout-mdpi
看一下指标,为什么没有加载"layout-large-xhdpi"?请告诉我在哪里可以找到这个信息。我真的需要找到一种方法来强制Layout/Resource/AssetManager加载特定的布局。我知道这个问题上最流行的评论是"你不需要,为什么有'layout-xhdpi',应该有'drawable-xhdpi'和'layout-large'",但是请理解一下。希望能给出哪些地方需要查看以及查找什么内容的简单提示。到目前为止,看起来像是要从AssetManager入手进行挖掘/记录。当我省略'layout-mdpi'时,应用程序会崩溃并且资源丢失。错误似乎在于尽管代码返回了'xhdpi',但它在其他地方假设了'mdpi'。我需要找到这个问题,并修复它,让我的应用程序看起来像在ICS上那样漂亮。我正在想办法以简单的方式确定哪个布局被加载——所有根布局都有一个'android:tag'元素,当我使用'setContentView(R.layout.main_layout)'时,我抓取根元素上的标签并知道哪个文件夹被加载了。除了视觉反馈外,这最终还必须与我的设备配置相匹配。提前感谢。