我需要显示setContentView(R.layout.main);
. 所以如果手机是normal-mdpi
,我需要显示“路径是:/res/layout-normal-mdpi”或者如果手机是normal-hdpi
,我需要一个文本“路径是:/res/layout-normal-hdpi”。
我基本上需要知道加载了哪个布局文件及其路径。
我需要显示setContentView(R.layout.main);
. 所以如果手机是normal-mdpi
,我需要显示“路径是:/res/layout-normal-mdpi”或者如果手机是normal-hdpi
,我需要一个文本“路径是:/res/layout-normal-hdpi”。
我基本上需要知道加载了哪个布局文件及其路径。
您可以在 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`
您可以调用Activity.getResources().getConfiguration()
which 将获取您当前的配置- 请参阅文档,您可以从那里获得您需要的大部分信息(即,您需要方向和screenLayout),您需要的屏幕密度Activity.getResources().getDisplayMetrics()
和密度字段。没有办法检索我知道的实际布局路径。
UPD 嗯,看看这个:LayoutInflater.inflate() - 这就是它在内部的工作方式,如果你深入挖掘的话 - 它会调用一个执行实际通货膨胀的本机方法,所以那里没有运气,但也许如果你戳使用 xml 解析器,你会找到一种方法来做到这一点。从我的脑海中,您可以为每个布局添加注释并将文件名放入其中。然后使用 Activity.getResources().getLayout(your_layout_id) 获取 xml 解析器,然后使用解析器获取您的注释 - 这样您就可以确切地知道您刚刚访问的文件。