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

xml문을 파싱해오는데, url을 imageView에 뿌릴 때 오류납니다ㅠ.ㅠ(protocol not found메시지..)

0 추천

// @Override

public void onClick(View v) {
 
  // 고객정보 출력 영역 인식
  TextView et_webpage_src = (TextView)findViewById(R.id.title_view); //영화타이틀 출력영역
  ImageView et_img = (ImageView)findViewById(R.id.imageView1);  //이미지 출력 영역


 try {
//url연결과 XmlPullParser생성 부분 생략


         // 현재 이벤트 타입(START_TAG, END_TAG, TEXT, etc)을 반환함         
          int eventType = parser.getEventType();

         int i = 0; //원하는 갯수만 출력하기 위한 변수

   // 태그 이름(<name>, <address>)의 검색여부 초기치 
          boolean bSet = false;
          boolean bset_thumbnail = false;
          boolean bSet_eng_title = false;
          boolean iset = false;
          boolean imgSet = false;

  // 이벤트 타입이 도큐먼트의 마지막이 아니면 반복 
while (eventType != XmlPullParser.END_DOCUMENT) {

 switch (eventType) {

 // 이벤트 타입이 도큐먼트의 시작인 경우
    case XmlPullParser.START_DOCUMENT:
     break;

 // 이벤트 타입이 START_TAG인 경우(예: <name>)
  case XmlPullParser.START_TAG:
  // 태그 이름을 추출함
   String tag = parser.getName();

    if (tag.equals("item")) // item태그일 때 추출.
          iset = true;

               if(iset){
               // 태그 이름이 <thumbnail>, <title>등 인 경우  

               if (tag.equals("thumbnail"))
               bset_thumbnail = true;

               if (tag.equals("title")) 
               bSet_eng_title = true;

      //bset_thumbnail이 켜져있고 <content>태그이면 출력. 
     //<thumbnail> <content> <data> </content> </thumbnail> 형태이기 때문에 이렇게 추출.
              if (bset_thumbnail == true && tag.equals("content")) {
              imgSet = true;
              bset_thumbnail = false;
              }

              if (bSet_eng_title == true && tag.equals("content")) {
             bSet = true;
              bSet_eng_title = false;    
              }                    
            break;

         // 이벤트 타입이 END_TAG인 경우(예: </name>)    
        case XmlPullParser.END_TAG:
             break;
      // 이벤트 타입이 태그 사이의 데이터인 경우는 데이터 추출 (예: <title>데이터</title>)       
        case XmlPullParser.TEXT:

      if (bSet) {
     //////// i를 증가시킴 ///////
    i=i+1; 
     ////////  3개 출력하고 싶을 때    ///////
     //if (i <= 3) {
     if (i == 1) {
      // 데이터 추출 
    String content = parser.getText();
     // 데이터 출력 
    et_webpage_src.append(content + "\n");
   // 검색여부 초기치 재설정
       bSet = false;
      }
     }  
 //이미지뷰에 url을 넣어 출력
     if (imgSet) { 
    String iurl = parser.getText();
   URL url2 = new URL(iurl);
    URLConnection conn = url2.openConnection();
    conn.connect();
    BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
    Bitmap bm = BitmapFactory.decodeStream(bis);
     bis.close();
    et_img.setImageBitmap(bm);
              
  break;

     }  

   // 이벤트 타입이 도큐먼트의 끝인 경우
     case XmlPullParser.END_DOCUMENT:
      break;
      } 

    // 다음 이벤트 타입을 할당 
    eventType = parser.next();

     } 
     } catch (Exception e) {
         // 예외사항 메시지 출력
         Toast.makeText(v.getContext(), e.getMessage(), 0).show();
     } 
    }
}





이미지 뷰와 관련된 ImgSet, bset_thumbnail 부분들이 없으면 title과 director값 등이 textView에 출력되어 잘 나오는데요...

위의 자바문대로 실행을하면, 이미지뷰에 thumbnail이 출력되긴 하는데 텍스트뷰에 값들이 하나도 출력이 안되고 toast 메시지로 protocol not found라고 뜹니다 ㅠㅜ

로그에도 무슨 문제라고 뜨지도 않고....ㅜㅜ 어떤걸 수정해야 될까요...?

이미지와 텍스트를 모두 출력하고 싶어요 ㅜ.ㅜ

(자바문은 반복되는 부분은 지우고 요약해서 올린거에요..)




 

어렵따 (120 포인트) 님이 2014년 6월 13일 질문
글자수 맞출려고 수정하다보니 들여쓰기가 엉망이네요 ㅜㅜ
관련 api는
http://apis.daum.net/contents/movie?apikey=DAUM_CONTENTS_DEMO_APIKEY&q=love
입니다..ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ

1개의 답변

0 추천
흠,,, xml 파싱을 제가 안쓰긴 하지만.... 올려주신 주소로 들어가보면 이미지가 바로 노출되어 있는게 아니라서 그런거 같습니다.  http://cfile116.uf.daum.net/C198x288/01500F4E50A4431E278AA9 이 주소가 바로 노출되어 있는 임미지 주소이구요.

님께서 들어간 페이지에 노출되어 있는 썸네일 주소는 해당 사이트에서 css라던지 다른 곳으로 연결되어 파싱한다고 해도

사용할 수 없는 주소인경우도 있거든요. 참고만 하십시요.
쭈쭈총각 (17,750 포인트) 님이 2014년 6월 13일 답변
...