0

내 안드로이드 앱에서 listView를 사용하고 있으며 textView 및 imageView가 있습니다. imageView에 표시하려는 웹 서비스 URL에서 가져 오기. 하지만 많은 이미지 URL이로드되지 않습니다. 이미지 URL을 다운로드하기 위해 "Android Universal Image Loader"및 "Picasso"를 사용했습니다. 나는 이미지 URL과 동일한 결과로 이러한 API 샘플 애플리케이션을 시도했다. 이미지 URL이 작동합니다. 모든 이미지가 브라우저에서 열립니다. 일부 이미지로드시 일부 이미지가로드되지 않는 이유는 무엇입니까? 나는 왜 그런지 이해하지 못한다. 답변 해 주셔서 감사합니다.유니버설 이미지 로더 및 Picasso가 일부 이미지 URL을로드하지 않음

+0

하면 자세한 내용을 게시 할 수 :

Map<String, String> headers = new HashMap<String, String>(); headers.put("User-Agent",""); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.dummyhotelimage) .showImageForEmptyUri(R.drawable.dummyhotelimage) .cacheInMemory(true) .cacheOnDisk(true) .considerExifParams(true) .extraForDownloader(headers) .bitmapConfig(Bitmap.Config.RGB_565) .imageScaleType(ImageScaleType.EXACTLY) .build(); ImageLoader.getInstance().init(new ImageLoaderConfiguration.Builder(getActivity()).imageDownloader(new CustomImageDownloader(context)).build()); ImageLoader.getInstance().displayImage(fullImageUrl, holder.img_hotel, options); 

그런 다음

public class CustomImageDownaloder extends BaseImageDownloader { public CustomImageDownaloder(Context context) { super(context); } public CustomImageDownaloder(Context context, int connectTimeout, int readTimeout) { super(context, connectTimeout, readTimeout); } @Override protected HttpURLConnection createConnection(String url, Object extra) throws IOException { HttpURLConnection conn = super.createConnection(url, extra); Map<String, String> headers = (Map<String, String>) extra; if (headers != null) { for (Map.Entry<String, String> header : headers.entrySet()) { conn.setRequestProperty(header.getKey(), header.getValue()); } } return conn; } } 

이 소스 사용자 정의 ImageDownloader를 만들려면 DisplayImageOptions에 UIL 이것을 시도? 예를 들어 URL 중 일부는 작동하는 것이고 일부는 작동하지 않는 것이 좋습니다. – Intrications

+1

스택 트레이스를 보여줄 수 있습니까? UIL은 실패한 이미지에 대한 로그 오류를 표시합니다. 우리는 거기에서 시작할 수 있습니다 –

+0

아마도 비트 맵에서 작동하는 많은 스레드가 어딘가에서 'OutOfMemoryError'가 발생합니다. UIL 하나의 스레드에서 설정을 시도하고 이것을 기본 구성'.bitmapConfig (Bitmap.Config.RGB_565)'및'.imageScaleType (ImageScaleType .EXACTLY)' –

답변

3

문제는 서버가 요청 URL을 모바일로 변경하고 이미지가 모바일 서버에 존재하지 않는다는 것입니다. 다른 에이전트를 사용하도록 UIL을 강요하면 서버가 요청을 리디렉션하지 못하게해야합니다. https://github.com/nostra13/Android-Universal-Image-Loader/issues/340

+0

나는 그것을 시도했지만 불행히도 작동하지 않았다. – realuser

+0

stacktrace는 똑같은가요? m. *. jpg가있는 URL에 대한 FileNotFoundException? –

+0

예, 스택 트레이스에서 같은 오류가 보입니다. – realuser

관련 문제