Как получить путь к файлу макета XML?
Мне нужно отобразить путь макета, используемого в setContentView(R.layout.main);
, Так что, если мобильный телефон normal-mdpi
Мне нужно отобразить "Путь: /res/layout-normal-mdpi" или если мобильный телефон normal-hdpi
Мне нужен текст "Путь: /res/layout-normal-hdpi".
Мне в основном нужно знать, какой файл макета был загружен и его путь.
2 ответа
Вы можете добавить скрытый вид текста с соответствующими именами папок в XML
Получить строку в текстовом представлении
TextView path = (TextView)findViewbyid(R.id.hiddentextview);
String s = path.gettext().tostring();
Убедитесь, что все идентификаторы текстового представления одинаковы. Пример
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()
которая даст вам текущую конфигурацию - см. документ, вы можете получить большую часть необходимой информации оттуда (а именно, вы будете нуждаться в ориентации и screenLayout), для плотности экрана, которую вы хотите Activity.getResources().getDisplayMetrics()
и поле плотности. Там нет никакого способа получить фактический путь макета, о котором я знаю.
UPD Хм, взгляните на это: LayoutInflater.inflate () - это то, как он работает внутри, если копать глубже - он вызывает нативный метод, который выполняет реальную инфляцию, так что не повезло, но, возможно, если вы ткнете где-то с парсером xml, вы найдете способ сделать это. В верхней части моей головы вы можете добавить комментарий к каждому макету и вставить в него имя файла. Затем используйте Activity.getResources(). GetLayout(your_layout_id), чтобы получить анализатор xml, а затем используйте анализатор, чтобы получить свой комментарий - таким образом, вы точно будете знать, к какому файлу вы только что обратились.