Разные ресурсы для разных настроек устройств - PullRequest
1 голос
/ 04 октября 2011

Я разрабатываю приложение, в которое включены некоторые ресурсы - в основном это веб-страницы со связанной графикой, CSS и т. Д., Которые я покажу в пользовательском WebView. Я пытаюсь понять, как обслуживать разные ресурсы на разных устройствах без массового дублирования.

Я бы хотел скопировать папку res, но для ресурсов. Например:

assets / html / page1.html ссылается на assets / html / example_pic.png, но я хочу показать другой example_pic.png в зависимости от плотности экрана или размера экрана.

В идеале я хотел бы иметь что-то вроде assets_hdpi / html / example_pic.png и assets_mdpi / html / example_pic.png

Есть ли элегантный способ добиться этого? Могу ли я каким-то образом использовать управление / res / folder для того же конечного результата, поместив example_pic.png в / res / drawable_hdpi и т. Д., А затем как-то указав веб-страницу для рисования?

1 Ответ

3 голосов
/ 04 октября 2011

Возможный обходной путь: Подготовьте именованную строку «subpath» для разных разрешений, к которым вы хотите обратиться, например ::100100

res/values-hdpi/subpath.xml: hdpi

res/values-ldpi/subpath.xml: ldpi

Подготовьте соответствующие подпути в папке вашего ресурса, например: assets/hdpi, assets/ldpi и храните там свои активы.

Наконец, используйте getResources.getString(R.string.subpath), чтобы получить лучший путь к активу.

String AssetPath= "file:///android_asset/"+getResources.getString(R.string.subpath)+"/";
myWebView.loadPage(AssetPath+"index.html");
...