마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰의 imageView에 웹이미지 가져오기가 안됩니다.

0 추천

각각 한장씩의 이미지를 가져오는건 성공했는데,

 

다수의 이미지를 가지고 와서 리스트뷰의 이미지뷰에 뿌려주는것이 안되고 있습니다 ㅠㅠ

 

imgsrc라는 스트링어레이에 1234-5678.png 파일명이 들어있으면

url = "http://example.co.kr/upload/" + imgsrc.get(i);

 

이런식인데..

그냥 url 주소에 "http://example.co.kr/upload/1234-5678.png" 라고 넣고 실행하면

 

이미지가 표시되는걸 확인 할 수 있는데,

url = "http://example.co.kr/upload/" + imgsrc.get(i); 이렇게 해서 url을 설정해 놓으면

이미지가 표시되지 않습니다ㅠㅠ

 

리스트뷰의 커스텀어답터의 getView 안에

 

try {
String geturl = "주소/";
geturl += m_imgsrc.get(position); //주소 + 이미지파일명(ex : abcd-1234.png)
url = new URL(geturl);
Log.e("web console","1 : " + m_imgsrc.get(position));
//Log.e("web console","2 : " + url.toString());

Bitmap bmp;	
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
getimg.setImageBitmap(bmp);
			
			
}catch (MalformedURLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
	}catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

이 소스를 사용하고 있는데,

URL 부분에 "http://example.co.kr/upload/1234-5678.png" 라고 하나의 이미지를 넣으면

모든 리스트뷰의 이미지뷰에 해당 이미지가 표시가 됩니다.

 

근데, url = "http://example.co.kr/upload/" + imgsrc.get(i); 이런방식으로 해서

주소를 넣어주면, 이미지가 보이지 않습니다 ㅠㅠ

 

그리고 확인해보니까

분명 서버에 있는 한장의 이미지 파일의 용량은 423kb 인데,

이걸 저 소스로 받으면 1.9메가? 정도로 용량이 늘어나더군요;;; bitmap 으로 변환해서 그런가;;;

다시 압축해서 하는 방법도 시도해봤지만 안되는군요 ㅠㅠ

 

그리고 또 확인한게,

다수의 이미지 주소를 반복문으로 넣으니까

bitmap.getbytecount 가 null값을 뱉어내더군요...

한장의 이미지를 받을 떼는 용량이 확인이 됬는데...

 

아우아디 (1,900 포인트) 님이 2014년 11월 10일 질문

1개의 답변

0 추천
  1. network 작업은 thread 에서 동작해야 되는데 thread 내에서 하신거 맞나요?
  2. ui 는 thread 에서 동작하면 안되는데 handler 나 onPostExecute 에서 한거 맞나요?
aucd29 (218,390 포인트) 님이 2014년 11월 11일 답변
...