2012-03-06 3 views
1

если у меня есть плитка в .png.tile. Можно ли включить его с помощью .apk. моя цель - после загрузки приложения с рынка, когда я открываю приложение, он должен показывать каждую плиту и каждый уровень масштабирования в аренде 1 страны (может быть, не большой). PS. Я использую OSM. PS.2 извините за мою английскую грамматику.автономная карта включает в .apk файл

EDIT: одна страна может быть слишком большой. возможно, только одна провинция или одно государство и некоторые уровни масштабирования.

EDIT2: Это функция, которую я использовал, и что я могу делать с входным потоком, спасибо вам большое.

AssetManager assetManager = getAssets(); 

    try { 
     files = assetManager.list("Map"); 
    } catch (IOException e) { 
     Log.e("tag", e.getMessage()); 
    } 
    try { 
     firstField = (EditText) findViewById(R.id.firstId); 
     firstField.setText(Integer.toString(files.length) 
       + " file. File name is " + files[0]); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    try { 
     inputStream = assetManager.open("Map/mapnik.zip"); 
     // String s = null; 
     // s = readTextFile(inputStream); 
     // secondField = (EditText) findViewById(R.id.secondId); 
     // secondField.setText(s); 
    } catch (IOException e) { 
     Toast.makeText(this, "Error" + e.toString(), Toast.LENGTH_SHORT) 
       .show(); 
    } 

ответ

1

Да, вы можете включить его, разместив его в папке с ресурсами. См. http://developer.android.com/reference/android/content/res/AssetManager.html для доступа к активам.

+0

благодарим вас за быстрый ответ. Все, что мне нужно сделать, это использовать assetManager для упаковки карты плитки и когда я открываю приложение в onCreate, мне нужно прочитать getAsset() и снова написать на SDCard? я правильно понял? – majorl3oat

+0

почти. вы не используете диспетчер активов для получения актива в своем apk, вы просто помещаете файл в свою папку с ресурсами, прежде чем строить apk; он будет автоматически упакован в процессе сборки. Кроме того, вам необязательно копировать актив на свою SD-карту, чтобы использовать его, вы можете использовать его прямо на месте; он может быть открыт для InputStream. – mah

+0

Извините, я был здесь пару дней. Я полностью понимаю ваш комментарий. Но если у меня есть файл Mapnik.zip, и этот файл нужно разархивировать в/sdcard/osmdroid, я могу получить этот zip-файл из активов и разархивировать этот файл в каталог, о котором я упоминал ранее? Я google об этом и нашел только чтение txt-файла с помощью inputStream. Большое спасибо. – majorl3oat

Смежные вопросы