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

리스트뷰 이미지 로딩 관련 질문입니다.

0 추천

안드로이드 -> JSP -> MYSQL 연동을 통하여 안드로이드에서 데이터를 전송하면 MYSQL에 잘 저장되고

MYSQL에 있는 데이터를 JSP에서 JSON으로 변환 후  안드로이드에서 JSON 파싱을 통해 데이터를

리스트뷰에 뿌려주고 있습니다. 제가 궁금한건 이 리스트뷰에 이미지를 어찌 뿌리냐는 겁니다...

여러 방법을 시도했지만 계속 실패하고 있습니다..

우선, MYSQL엔 이미지에 대한 이름이 저장되어 있고 이미지 이름 데이터를 파싱해서 가져와

URL에 넣어서 이미지를 가져오려고 합니다. EX) http://192.x.x.x/디렉토리/이미지 이름

웹에서 해당 주소로 접속해보면 이미지가 잘 뜹니다..

 

이런식으로 OOO이 있는 곳이 이미지가 들어갈 곳인데 계속 실패하여

현재는 아무 이미지나 넣어준 상태입니다.

밑에 코드는 JSON 파싱관련 코드입니다. 저런식으로 파싱해서 데이터를 뿌려주고 있습니다.

이미지를 뿌려주기 위해선 해당 코드에서 어떤식으로 추가시켜줘야 할 지 모르겠네요..

도와주세요!

try {
    JSONObject jsonObj = new JSONObject(myJSON);
    products = jsonObj.getJSONArray(TAG_DATA);

    for (int i = 0; i < products.length(); i++) {
        JSONObject c = products.getJSONObject(i);
        String image = c.getString(TAG_IMAGE);
        String subject = c.getString(TAG_SUBJECT);
        String price = c.getString(TAG_PRICE) + "원";
        String date = c.getString(TAG_DATE);

        HashMap<String, String> productss = new HashMap<String, String>();

        productss.put(TAG_SUBJECT, subject);
        productss.put(TAG_PRICE, price);
        productss.put(TAG_DATE, date);
        productss.put(TAG_IMAGE,image);
       //잘 출력 됨 System.out.println("파일 이름 잘 출력되는지 확인 : "+image);


        productList.add(productss);
    }

    // 어댑터 생성, R.layout.list_item : Layout ID
    ListAdapter adapter = new SimpleAdapter(
            book.this, productList, R.layout.list_item,
            new String[]{TAG_SUBJECT, TAG_PRICE, TAG_DATE},
            new int[]{R.id.subject, R.id.price, R.id.date}
    );

    bookList.setAdapter(adapter); // ListView 에 어댑터 설정
섭구 (370 포인트) 님이 2018년 8월 19일 질문

2개의 답변

+1 추천
 
채택된 답변
위의 분이 잘 말씀해주셨네요.

BaseAdapter를 상속한 Custom Adapter를 만드셔야합니다.

한 row(item)를 구성하기 위해 UI를 먼저 작성하시고(xml)
각 widget들에 작성자분의 productList의 item들을  set하여 표현하시면 됩니다.

 

물론 UI를 구성하실때 이미지를 표현하기 위에 이미지뷰를 넣어주어야겠지요.

비동기 이미지 로드 라이브러리(Glide, 피카소)를 통해 안정적이고 효율적으로 이미지를 보여줄수있습니다.
백마귀족 (1,550 포인트) 님이 2018년 8월 21일 답변
섭구님이 2018년 8월 21일 채택됨
+1 추천

https://blog.naver.com/cookatrice/50178844614 이 블로그의 코드와 유사해보이네요. 헌데 블로그 저자분의 후기처럼, BaseAdapter를 상속받은 커스텀 어댑터를 따로 만들어서 활용하시는쪽도 알아보시면 좋을것같습니다. 도움되길바랍니다~ 화이팅

idontknow (6,380 포인트) 님이 2018년 8월 20일 답변
...