2012-03-06 3 views
1

에 포함됩니다. .apk와 함께 포함 할 수 있습니까? 시장에서 앱을 다운로드 한 후 내 용도가 있습니다. 앱을 열면 모든 타일과 모든 확대/축소 수준이리스 국가 1 개국 (어쩌면 크지는 않음)에 표시되어야합니다. PS. 나는 OSM을 사용한다. PS.2 내 영어 문법에 대해 사과드립니다.오프라인지도는 .png 파일에 타일이있는 경우

편집 : 한 국가가 너무 클 수 있습니다. 한 주 또는 한 주 및 일부 확대/축소 수준 일 수도 있습니다.

EDIT2 : 이것은 내가 사용하는 기능이며 inputstream에 대해 할 수있는 일은 대단히 감사합니다.

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

예, 에셋을 assets 폴더에 넣을 수 있습니다. 애셋에 액세스하려면 http://developer.android.com/reference/android/content/res/AssetManager.html을 참조하십시오.

+0

빠른 답장을 보내 주셔서 감사합니다. 내가해야 할 일은 tileManager를 pack하는 assetManager를 사용하는 것입니다. onCreate에서 app을 열면 getAsset()을 읽고 sdcard에 다시 써야합니까? 나는 이해 했는가? – majorl3oat

+0

거의. 애셋 관리자를 사용하여 APK에서 애셋을 가져 오지 않으면 apk를 빌드하기 전에 애셋 폴더에 파일을 저장하기 만하면됩니다. 빌드 프로세스에 의해 자동으로 압축됩니다. 또한 자산을 사용하기 위해 반드시 SD 카드에 복사 할 필요는 없습니다. 직접 사용할 수 있습니다. InputStream에 대해서 열 수가 있습니다. – mah

+0

죄송합니다. 몇 일 전에 오프라인 상태였습니다. 나는 당신의 의견을 완전히 이해합니다. 하지만 Mapnik.zip 파일이 있고이 파일은/sdcard/osmdroid에서 압축을 풀 필요가 있습니다. 자산에서이 zip 파일을 가져온 후이 파일을 내가 언급 한 디렉토리에 압축을 풀 수 있습니까? 나는 이것에 대해 구글과 입력 스트림에 의해서만 txt 파일을 읽을 발견. 고마워요. – majorl3oat

관련 문제