2012-07-30 2 views
1

나는 자신의 아이콘이있는 각 메뉴 항목과 메뉴를 만드는 응용 프로그램을 개발하고 있습니다. 각 메뉴 항목에 너무 많은 PNG 파일이 있습니다. 앞으로는이 png 파일에 추가 할 WebService의 메뉴 항목을 업데이트 할 예정입니다.안드로이드 애플 리케이션에서 아이콘 PNG 파일을 관리

이 데이터 (png 파일)를 저장하는 가장 효율적인 방법은 무엇입니까? 내 응용 프로그램을 출하 한 후에 drawable 폴더의 내용을 업데이트 할 수 없기 때문에 drawable 폴더에 보관하고 싶지 않습니다. 내가 외부 메모리에 그것을 저장하는 경우 어떻게 달성합니까? 정확히 어디에 이러한 png 파일을 복사하여 내 코드의 리소스로 사용해야합니까?

감사합니다.

답변

1

sqLite에 BLOB으로 저장하십시오.

+0

데이터베이스가 느려지고 카테고리가 생기고 카테고리 내의 항목에 대한 이미지가 생성됩니다. – Hakeem

+0

어떤 데이터베이스가 Hakeem? 이미지를 GUID가있는 별도의 데이터베이스에 저장합니다. guid를 참조하십시오. 문제 해결됨. SQLite는 어쨌든 파일 일뿐입니다. –

+0

+ 어쨌든 속도가 느려지는 것을 어떻게 알 수 있습니까? sqLite에 대한 쿼리 계획을 검토 했습니까? –

0

http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang.String, int) 메소드를 사용하여 앱에 할당 된 비공개 공간에 쓸 수 있으며 형제와 함께 다시 읽을 수 있습니다.

InputStream is = your input stream 
OutputStream os = mContext.openFileOutput("image.png",Context.MODE_PRIVATE); 

Utils.copyStream(is,os); //Your own steam copy here 

is.close; 
os.close; 
+0

내 응용 프로그램에이 공간을 할당 할 때 처음으로 모든 데이터를 저장해야합니까? 컴파일 시간에이 공간을 가질 수 없습니까? – Hakeem

+0

가장 좋은 방법은 자산 폴더에있는 모든 내장 아이콘을 가지고 처음 실행시이 위치에 복사하는 것입니다. 아니면 그냥 파일을로드하는 방식으로 포장하여 'mContext.openFileInput (...)'을 먼저 열어보고 실패하면 'mContext.getAssets(). open (..)'을 사용하여 자산에서 열어보십시오. .)' – Bostwickenator

+0

정말 고마워요. 나는이 해결책을 시도 할 것이다. – Hakeem

관련 문제