2014-01-22 3 views
3

번에 표시되지 않는 경우 앱의 모든 업데이트에서 애셋 폴더를 업데이트 할 수 있습니다. 퀴즈 앱을 만들고 애셋 폴더에 이미지가 있습니다. 앱을 시작할 때 폴더의 이미지 수를 보여줍니다. 그러나 자산 폴더에있는 이미지를 업데이트하면 10-20 개의 이미지에서 앱에 표시 될 이미지의 실제 총 수가 20이지만 여전히 10 개의 이미지가 표시됩니다.하지만 앱을 제거하고 설치하면 20 개의 이미지가 모두 표시됩니다. 앱을 제거하지 않고 업데이트 된 자산 폴더로 이동 하시겠습니까?애셋 폴더의 업데이트 된 이미지가 앱 실행시

String[] getImagesFromAssets() { 
    String[] img_files = null; 

    try { 
     img_files = getAssets().list("pictures"); 
    } catch (IOException ex) { 
     Logger.getLogger(GameActivity.class 
       .getName()).log(Level.SEVERE, null, ex); 
    } 
    return img_files; 
} 

void loadImage(String name) { 
    try { 
     InputStream ims = getAssets().open("pictures/" + name); 

     Drawable d = Drawable.createFromStream(ims, null); 
     image.setImageDrawable(d); 

    } catch (IOException ex) { 
     return; 
    } 
} 
+0

모든 expections 폐기는 나쁜 습관입니다. 대부분의 시간에 문제를 일으킬 것입니다. –

+0

@BinoyBabu pardon.can이 해결책을 찾을 수 있도록 도와 주시겠습니까? –

+0

'catch (IOException ioe) {ioe.printStackTrace();를 사용하십시오. }'디버그 정보를 더 얻고 여기에 추적을 게시하십시오. –

답변

2

AFAIK 자산 폴더는 설치시에 한 번 초기화됩니다. 응용 프로그램 패키지 및 설치 후 에셋 폴더를 업데이트 할 수 없습니다. 설치 후 자원을 변경하면 이전 설치된 버전에 반영되지 않습니다. Asset 폴더는 읽기 전용이므로 거기에있는 파일을 쓰거나 업데이트 할 수 없습니다.

업데이트하려면 이전 버전을 제거하고 새 버전을 설치해야합니다.

+0

reply.i see.i를 읽어 주셔서 감사합니다 this.btw 동안 내가 검색 한 대체 방법은 무엇입니까? 자산은 사용자가 앱을 제거하지 않으면 업데이트하지 않으므로 이미지를 검색하는 방법은 무엇입니까? drawable 폴더를 사용하여 이미지 즉, drawable/new_folder를 추가하고 위에서 공유 한 내 자산 코드를 new_folder에서 검색하는 방법을 알고 싶습니다. –

+0

유일한 방법은 이미지를 SDCard로 복사 한 다음 거기에서 액세스를 시도하는 것입니다. drawable 폴더도 읽기 전용이므로 이미지를 drawable로 유지하면 이미지를 이미지에 추가하여 런타임에 업데이트 할 수 없습니다. 따라서 이미지를 외부 저장소에 복사 한 다음 응용 프로그램에서 가능한 방식으로 액세스하는 것이 좋습니다. – GrIsHu

+0

oh i see.so 가능한 경우 코드를 제공 할 수 있습니다. 다른 퀴즈 앱이 어떻게 작동하는지 궁금해하지 않으세요? 게임에 더 많은 레벨을 추가하는 것과 같은 아이디어가 있습니까? –

0

당신은 자산에서 이미지를 촬영하려면이 옵션을 사용할 수 있습니다 안드로이드 응용 프로그램의

AssetManager assetManager = getAssets(); 
      InputStream istr = null; 
      try { 
       istr = assetManager.open(strName); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      Bitmap bitmap = BitmapFactory.decodeStream(istr); 
+0

나는 이것이 getAssets()에 객체 이름을 할당하는 대신에 사용했다고 생각한다. –

관련 문제