2012-03-18 1 views
0

하고 싶습니다. 내 애플 리케이션은 많은 스크린을 가지고 있고 그 각각의 상단에, 나는 imageView를 로고로 표시한다. 그래서 나는 20 개의 스크린을 가지고 있으며 이는 내 드로어 블에 이미지가 (20 * 3) 있다는 것을 의미하므로 내 앱이 많은 Mb가된다. 이 이미지는 정적이며 결코 바뀌지 않으므로 다음과 같이하십시오. 웹에서 가져 오기 (이 작업을 수행하는 방법을 알고 있지만이 질문을하지는 않습니다) 처음으로이 스크린이 처음 실행될 때만이 이미지가 어딘가에 저장됩니다 사용자의 장치에 저장 한 다음 해당 경로를 소스로 사용하십시오. (매번 기다리는 사용자에게는 성가신 일이기 때문에 다시 다운로드하지 않는다는 뜻입니다). 그래서 가능합니까? SD에서 데이터를 가져오고 있기 때문에 내 앱이 느려지 게됩니까 (처음이 아니라 나머지는 느려 집니까?)?기기를 처음 리콜 한 후 기기에 데이터를 저장합니다.

+0

그래서 60 가지 이미지가 있습니까? 또는 60 개의 장소에 보여주는 정적 이미지가 단 하나입니까? – zapl

+0

20 개의 로고가 각 화면마다 하나씩 있습니다. –

+0

헤더 또는 로고가 포함 된 레이아웃을 만든 다음 표시해야하는 각 레이아웃에서 (화면 수에 관계없이 이미지 하나)을 사용하고 오프라인 사용자를 http로 다운로드해야하며 데이터 사용량은 – moujib

답변

1

예, 상당히 쉽게이 작업을 수행 할 수 있습니다. SD 카드에 반드시 데이터를 저장할 필요는 없습니다. 내부 저장소에 이미지를 저장할 수 있습니다.

기본적으로 캐시 디렉토리를 설정하십시오. 이미지가 필요할 때 캐시 디렉토리를 확인하고 파일이 없으면 http를 통해 다운로드하여 파일을 캐시 디렉토리에 저장하십시오.

리소스를 얻는 방법이 변경됩니다 (예 : R.drawable.imagename을 사용할 수 없음). 그러나 프로그래밍 방식으로 드로어 블을로드 할 수 있습니다.

+0

안드로이드에서 캐시를 설정하는 방법에 대한 샘플 코드가 있습니까? –

+0

캐시로, 나는 단지 파일 시스템에있는 파일을 의미합니다. 나는 안드로이드 레퍼런스 문서 (http://developer.android.com/guide/topics/data/data-storage.html)의 데이터 스토리지 섹션에서 무엇보다 복잡한 것을 상상하고 있지 않다. –

관련 문제