0

我需要显示setContentView(R.layout.main);. 所以如果手机是normal-mdpi,我需要显示“路径是:/res/layout-normal-mdpi”或者如果手机是normal-hdpi,我需要一个文本“路径是:/res/layout-normal-hdpi”。

我基本上需要知道加载了哪个布局文件及其路径。

4

2 回答 2

3

您可以在 xml 中添加一个具有相应文件夹名称的隐藏文本视图 通过以下
方式获取文本视图中的字符串

TextView path = (TextView)findViewbyid(R.id.hiddentextview); 
 String s =  path.gettext().tostring();

确保文本视图的所有 id 都相同 Example

if your xml is in `normal-mdpi` in hidden textview hard code `normal-mdpi`
if your xml is in `large-mdpi` in hidden textview hard code `large-mdpi`
于 2012-07-03T16:25:31.770 回答
1

您可以调用Activity.getResources().getConfiguration()which 将获取您当前的配置- 请参阅文档,您可以从那里获得您需要的大部分信息(即,您需要方向screenLayout),您需要的屏幕密度Activity.getResources().getDisplayMetrics()密度字段。没有办法检索我知道的实际布局路径。

UPD 嗯,看看这个:LayoutInflater.inflate() - 这就是它在内部的工作方式,如果你深入挖掘的话 - 它会调用一个执行实际通货膨胀的本机方法,所以那里没有运气,但也许如果你戳使用 xml 解析器,你会找到一种方法来做到这一点。从我的脑海中,您可以为每个布局添加注释并将文件名放入其中。然后使用 Activity.getResources().getLayout(your_layout_id) 获取 xml 解析器,然后使用解析器获取您的注释 - 这样您就可以确切地知道您刚刚访问的文件。

于 2012-07-03T17:05:04.650 回答