我需要顯示setContentView(R.layout.main);
中使用的佈局的路徑。所以如果手機是normal-mdpi
,我需要顯示「路徑是:/ res/layout-normal-mdpi」,或者如果手機是normal-hdpi
,我需要一個文本「路徑是:/ res/layout-normal-hdpi」 。如何獲取佈局xml文件路徑?
我基本上需要知道哪個佈局文件被加載和它的路徑。
我需要顯示setContentView(R.layout.main);
中使用的佈局的路徑。所以如果手機是normal-mdpi
,我需要顯示「路徑是:/ res/layout-normal-mdpi」,或者如果手機是normal-hdpi
,我需要一個文本「路徑是:/ res/layout-normal-hdpi」 。如何獲取佈局xml文件路徑?
我基本上需要知道哪個佈局文件被加載和它的路徑。
您可以在XML中添加一個隱藏的文本視圖與相應的文件夾名稱
獲取文本視圖中的字符串由
TextView path = (TextView)findViewbyid(R.id.hiddentextview);
String s = path.gettext().tostring();
確保文本視圖的所有ID是相同 例
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`
'路徑'是什麼?如果我使用靜態類'Path',我什麼都不能做。 – sandalone
我編輯了代碼以便更好地理解 – VenomVendor
是的,這是我現在使用的技巧。這很難,因爲您必須手動將文本硬編碼到每個TextFile中。看來這是迄今爲止唯一的解決方案 – sandalone
您可以致電Activity.getResources().getConfiguration()
WHI ch會給你當前Configuration - 看文檔,你可以從那裏獲得大部分你需要的信息(即你需要orientation和screenLayout),對於屏幕密度你需要Activity.getResources().getDisplayMetrics()
和density字段。沒有辦法檢索我知道的實際佈局路徑。
UPD 嗯,看看這個:LayoutInflater.inflate() - 這是它是如何工作的內部,如果你深入挖掘 - 它要求通過到執行的實際通貨膨脹率一個本地方法,所以沒有運氣,但也許如果你使用xml解析器,你會發現一個辦法。從我的頭頂開始,您可以爲每個佈局添加評論,並將文件名稱加入其中。然後使用Activity.getResources()。getLayout(your_layout_id)來獲取xml解析器,然後使用解析器來獲取您的註釋 - 這樣您就可以確切地知道您剛纔訪問的文件。
你需要什麼? – Macarse
需要制定具體的任務。我可以通過TextView和每個資源XML中的硬編碼路徑來實現,但這種方式會變慢。我需要通過編程來完成。 – sandalone