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

Jsoup 이미지 파싱 질문입니다.

0 추천

안녕하세요? 저는 학과 홈페이지에 있는 공지를 Jsoup를 이용하여 파싱하는 작업을 하고 있습니다.

각 공지마다 사진이 있는데요. 문제는 사진의 개수가 다르다는 것입니다.

그래서 xml에 고정된 ImageView 개수를 정의할 수 없어서 찾아본 결과 동적으로 ImageView를 생성하는 법을 발견하였습니다. 그리하여 동적으로 사진의 개수만큼 ImageView를 생성하고 Glide를 이용하여 이미지를 추가하려고 하는데 작동을 하지를 않네요...

 

혹시 어떤 문제인지 알려주실 수 있나요? 고수님들 부탁드립니다ㅠㅠ

 

 

class GetImageContentTask extends  AsyncTask<Void, Void, ArrayList<String>> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected ArrayList<String> doInBackground(Void... params) {
        try {
            Document doc = Jsoup.connect(url).timeout(0).get();

            Elements imgs = doc.select("#divView > img");
            for(Element img : imgs) {
                imgList.add(img.attr("src"));
            }
        } catch(IOException e) {
            e.printStackTrace();
        }
        return imgList;
    }

    @Override
    protected void onPostExecute(ArrayList<String> imgList) {
        super.onPostExecute(imgList);

        for(int i=0; i < imgList.size(); i++) {
            ImageView image = new ImageView(NoticeContent.this);
            imgViewList[i] = image;
            linearLayout.addView(imgViewList[i]);
        }

        for(int i=0; i < imgList.size(); i++) {
            Glide.with(NoticeContent.this).load(imgList.get(i)).override(200,200).into(imgViewList[i]);
            imgViewList[i].invalidate();
        }
    }
}
바지년 (140 포인트) 님이 2017년 1월 23일 질문
어디가 어떻게 작동을 안하는지도 적어주세요.
https://susemi99.gitbooks.io/howto-for-beginners/content/
xml 파싱을 하는데 xml파서가 아니라 Jsoup을 사용하는 특별한 이유라도 있으신가요??
아아.. 오해의 소지가 있겠군요.. 저 xml은 layout을 담고있는 안드로이드 xml파일을 말하고 있는 것입니다! HTML 파싱을 하고 있습니다
학과 공지 크롤링을 하고 있습니다. 그런데 각 게시글 마다 사진이 들어있는 개수가 다르기 때문에 동적으로 ImageView를 활용해야 한다고 생각을 했습니다.
저 코드의 결과로는 마지막 사진 하나만 로드가 되고 다른 사진은 로드가 되지 않는 상태가 발생하고 있습니다..

1개의 답변

0 추천
http://lorempixel.com 같은 랜덤 이미지를 주는 곳이 있습니다. 이 이미지 주소를 이용해서 크롤링이 문제인지, 이미지뷰를 표시할 때의 문제인지부터 찾으세요.
쎄미 (162,410 포인트) 님이 2017년 1월 24일 답변
...