2013-10-25 4 views
3

ViewPager을 사용하여 이미지 갤러리를 만들려고합니다. 몇 가지 예를 발견 했으므로 모두 작동하도록했습니다. 예제에서 보여주지 않는 한 가지 방법은 URL에서 다운로드 한 이미지를 사용하여 ViewPager를 채우는 것입니다. 모든 자습서에는 Drawables 폴더 또는 SD 카드에있는 이미지가 있습니다. 누구든지 ViewPager가 URL에서 이미지를 가져 오는 예제를 알고 있습니까? GridView와 ListView를 Lazy 로딩하는 예제를 찾았지만 작업중인 ViewPager로 변환 할 수있을 정도로 똑똑하지는 않습니다. 나는 주로 어댑터 클래스에 문제가있다. Lazy Loading 예제는 BaseAdapter을 사용하는 것으로 보이는데 ViewPager가 PagerAdapter을 사용해야한다고 생각하십니까? 그래서 URL에서 이미지를 가져 오는 ViewPager의 예가 있습니까?Android ViewPager : URL에서 이미지 다운로드

String[] imageGalleryStr = { 
    "http://www.website.com/images/image01.png", 
    "http://www.website.com/images/image02.png", 
    "http://www.website.com/images/image03.png", 
    "http://www.website.com/images/image04.png", 
    "http://www.website.com/images/image25.png", 
    "http://www.website.com/images/image26.png", 
    "http://www.website.com/images/image27.png", 
    "http://www.website.com/images/image28.png" }; 

모든 아이디어 : 내가 할 수 ViewPager 필요 무엇이 같은 문자열 배열 뭔가에서 이미지를 다운로드하는 것입니다?

답변

4
+1

이전에 Universal Image Loader를 사용해 보았지만이를 구현하는 방법에 대한 좋은 자습서를 찾을 수 없었습니다. 하지만 마침내 하나 찾았고 유니버설 이미지 로더가 작동하도록했습니다! – kirktoon1882

+0

위대한 !!!!!!!!! –

+1

@ kirktoon1882, 늦었지만 자습서를 공유하는 것이 마음에 드십니까? – Felix

1

이 라이브러리 난 당신이 발리 라이브러리를 사용하는 것이 좋습니다 것, 그것의 응용 프로그램에서 구글에 의해 사용되는 동일한 라이브러리는 구글 플레이. 이 답변을 확인하십시오 : Getting Bitmap images from server to set on ImageView

1

이 코드를 시도하지는 않았지만이 코드가 도움이 될 것입니다. :)

@Override 
public Object instantiateItem(final ViewGroup container, final int position) { 
    tagShown = false; 

    View view = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.image_view_item, container, false); 

    imageView = (ImageView) view.findViewById(R.id.imageView); 

    new DownloadImageInBackground(imageView).execute(imageGalleryStr[position]); 

    ((ViewPager) container).addView(view); 

    return view; 
} 

... 

private class DownloadImageInBackground extends AsyncTask<String, Void, Bitmap>{ 

    ImageView iv; 

    public DownloadImageInBackground(ImageView iv) { 
     this.iv = iv; 
    } 

    @Override 
    protected Bitmap doInBackground(String... params) { 
     // download bitmap from string url 
     return bitmap; 
    } 

    @Override 
    protected void onPostExecute(Bitmap result) { 
     super.onPostExecute(result); 
     iv.setImageBitmap(result); 
    } 
} 
0

당신은 이미 작업 템플릿 (ViewPager) 어쩌면 당신은 그물에 걸쳐에서 이미지/비트 맵을 얻기 위해 libs와 중 하나를 선택할 수 다음에 운영되는 조각 유형 내부 이미지 로더 포장이있는 경우 ViewPager에 의해 ...

호출기 호출 'onCreateView'페이징되는 유형에

, 당신은 같은 것을 가지고

imgLoadr.DisplayImage(mMap.get("pic"), imgView); 

에 대한 많은 libs와 중 하나를 기반으로 'DisplayImage'의 구현 네트워크 이미지 관리 및 다음 세부 ..

DisplayImage implementation looks first for a properly scaled bitmap in memory... 
then it looks for a bitmap in local file system cache... 
then it fetches the file from across the network and feeds the network stream to get instances of local bitmap/caches. 

게시물이 마지막 항목 이상 해당하지만, 그 이미지 중심의 응용 프로그램과 함께 작업의 한 부분이기 때문에 IMO 당신은 목록의 모든 관심이 될 수있다

큰 사진 앨범을 다루는 경우, 메모리 요구 사항을 줄이기 위해 비트 맵을 효율적으로 관리하고 비트 맵을 확장해야 할 것입니다.

관련 문제