2017-01-05 7 views
2

안녕하세요 저는 xamarin 양식 PCL을 사용하여 응용 프로그램을 만들려고합니다. 기본 이미지를 사용하는 이미지 갤러리를 구현 중입니다. 모든 이미지가 얼룩에 있습니다. 이미지를 다운로드하고 이미지를 장치에 저장하고 다운로드가 완료되면 즉시 기본 이미지를 교체해야합니다. 그리고 다음 번에 앱을로드 할 때 캐시에없는 이미지 만 다운로드하십시오. 캐시에서 이미지를 캐싱하고 이미지를로드하는 플러그인이 없습니다. FFPLUGIN이라는 플러그인을 보았지만 작동하지 않았습니다. 어떻게 구현할 수 있습니까? 이미지 캐싱은Xamarin forms : 이미지 캐시

+1

이미지의 이름이 동적입니까, 아니면 http://www.mywebsite.com/myimage.png와 같이 정적 인 'url'이 있습니까? – user1

+0

@ user1 동적으로 명명 된 – Sonali

+1

웹 이미지는'Xamarin.Forms.Image'로 24 시간 동안 기본적으로 캐시됩니다. 'CacheValidity'를 변경하여 값을 늘릴 수 있습니다. – BrewMate

답변

1

당신은 여기 자 마린 양식에 ImageCaching에 표시 내장 사용할 수 있습니다

https://developer.xamarin.com/guides/xamarin-forms/working-with/images/#Downloaded_Image_Caching

다운로드 이미지 캐싱

UriImageSource 또한 지원을 통해 구성 다운로드 한 이미지의 캐싱 다음 속성 :

CachingEnabled - 캐싱 사용 여부 (기본적으로 true).

CacheValidity - 이미지가 로컬로 저장되는 기간을 정의하는 TimeSpan. 캐싱은 기본적으로 사용되며 이미지는 에 24 시간 동안 로컬로 저장됩니다.

Image.Source = new UriImageSource {CachingEnabled = false, 
Uri="http://server.com/image"}; To set a specific cache period (for 
example, 5 days) instantiate the image source like this: 


webImage.Source = new UriImageSource { 
Uri = new Uri("https://xamarin.com/content/images/pages/forms/example-app.png"), 
CachingEnabled = true, 
CacheValidity = new TimeSpan(5,0,0,0) }; 

내장 캐싱 매우 쉽게 설정할 수 이미지 (또는 바인드)의 목록을 스크롤과 같은 시나리오를 지원하기 위해 만드는 : 특정 이미지에 대한 캐싱을 사용하지 않으려면, 이 같은 이미지 소스를 인스턴스화 이미지를 각 셀에 넣고 보기로 셀을 다시 스크롤 할 때 기본 제공 캐시 이 이미지를 다시로드하도록합니다.

+0

캐시에 있거나 캐시되지 않은 경우 어떻게 체크합니까? – Sonali

+0

앱 캐시에 이미지가없는 경우에만 이미지를 다운로드하고 싶습니다. – Sonali

+0

'Xamarin Forms Image'가 해당 체크를 할 것입니다. , 그리고 이미지를 다시 다운로드하지 않으면 – user1