'[Android] 웹서버에서 이미지 파싱해오기 간단예제 !'에 해당되는 글 1건

  1. 2010.09.24 [Android] 웹서버에서 이미지 파싱해오기 간단예제 ! 2
04.Anddoid2010. 9. 24. 16:37
반응형
안녕하세요 오늘은 웹서버에서 이미지를 파싱해보려고합니다.
아주간단한 예제입니다.
필요하신분들은 참고하세요 :D



그냥 실행해보시면 퍼미션에러가 납니다. 꼭 AndroidManifest.xml 파일에다가 다음내용을 추가해주세요 !!
  1. <uses-permission 
  2.     android:name="android.permission.INTERNET"/> 


아주 미약한 실력이지만 주석달아놨습니다.
실수가 있을수있으니 실수가 있다면 태클 걸어주시기 바랍니다.

WebImageParse.java 소스입니다.
  1. package com.j0ker.parsing;  
  2.  
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.net.HttpURLConnection;  
  6. import java.net.MalformedURLException;  
  7. import java.net.URL;  
  8. import java.util.HashMap;  
  9. import java.util.Map;  
  10. import java.util.Random;  
  11.  
  12. import android.app.Activity;  
  13. import android.os.Bundle;  
  14. import android.graphics.Bitmap;  
  15. import android.graphics.BitmapFactory;  
  16. import android.util.Log;  
  17. import android.view.View;  
  18. import android.widget.Button;  
  19. import android.widget.EditText;  
  20. import android.widget.ImageView;  
  21.  
  22.  
  23. public class WebImageParse extends Activity   
  24. {  
  25.     ImageView imView;  
  26.     String imageUrl = "http://j0ker.dothome.co.kr/"; // 이미지를 파싱해올 URL  
  27.     Random r; // 사진을 랜덤으로 불러오기위한 랜덤변수   
  28.       
  29.     /** Called when the activity is first created. */ 
  30.     @Override 
  31.     public void onCreate(Bundle savedInstanceState)   
  32.     {  
  33.         super.onCreate(savedInstanceState);  
  34.         setContentView(R.layout.main);  
  35.         r = new Random(); // 랜덤을 초기화 합니다.   
  36.           
  37.           
  38.         Button bt3 = (Button)findViewById(R.id.get_imagebt); // 버튼을 연결시켜줍니다.  
  39.         bt3.setOnClickListener(getImgListener); // 버튼에  클릭이벤트를 감지할 리스너를 설치해줍니다.  
  40.         imView = (ImageView)findViewById(R.id.imview); // 이미지를 읽어들일 이미지뷰를 연결해줍니다.  
  41.           
  42.     }  
  43.       
  44.     // 클릭이벤트가 발생했을경우 의 처리를 해주는 함수입니다.  
  45.     View.OnClickListener getImgListener = new View.OnClickListener()   
  46.     {  
  47.           
  48.         @Override 
  49.         public void onClick(View v) // 클릭이 일어났을경우    
  50.         {  
  51.             // TODO Auto-generated method stub  
  52.             int i = r.nextInt()%4+1; // i 에 랜덤한 숫자를 생성시켜줍니다.   
  53.             downloadFile(imageUrl+i+".png"); // 해당파일을 다운로드 합니다.   
  54.             Log.i("im url",imageUrl+i+".png"); // 디버깅을 위한 Log를 설정해줍니다.   
  55.         }  
  56.     };  
  57.       
  58.       
  59.     Bitmap bmImg; // 비트맵을처리할 변수를 생성합니다.  
  60.      // 이미지를 다운로드하는 함수입니다. 파라미터는 String형  
  61.     // fileUrl 이 들어갑니다.   
  62.     void downloadFile(String fileUrl)   
  63.     {  
  64.         URL myFileUrl = null; // URL 타입의 myFileUrl을  NULL로 초기화 시켜줍니다.   
  65.           
  66.         try 
  67.         {  
  68.             myFileUrl = new URL(fileUrl); //  파라미터로 넘어온 Url을 myFileUrl에 대입합니다.  
  69.               
  70.         }  
  71.         catch(MalformedURLException e) // 예외처리를 해줍니다.  
  72.         {  
  73.             // Todo Auto-generated catch block  
  74.             e.printStackTrace();  
  75.         }  
  76.         try 
  77.         {  
  78.             // 실질적인 통신이 이루어지는 부분입니다.  
  79.             // myFileUrl 로 접속을 시도합니다.   
  80.             HttpURLConnection conn = (HttpURLConnection)myFileUrl.openConnection();  
  81.             conn.setDoInput(true);  
  82.             conn.connect();  
  83.             int length = conn.getContentLength(); // 받아온 컨텐츠의 길이를 length 변수에 저장합니다.  
  84.             InputStream is = conn.getInputStream(); // InputStream is 변수에 받아온 InputStream을 저장합니다.  
  85.               
  86.             bmImg = BitmapFactory.decodeStream(is); // 받아온 이미지를 bmImg에 넣어둡니다.  
  87.             imView.setImageBitmap(bmImg); // imView에 이미지를 셋팅합니다.  
  88.         }  
  89.         catch(IOException e) // 예외처리를 해줍니다.  
  90.         {  
  91.             e.printStackTrace();   
  92.         }  
  93.     }  
  94. }  




Main.xml 내용입니다.
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7.       
  8.    <TextView   
  9.         android:layout_width="fill_parent" 
  10.         android:layout_height="wrap_content" 
  11.         android:text="간단한 이미지파싱예제입니다. !"/> 
  12.       
  13.    <Button   
  14.         android:id="@+id/get_imagebt" 
  15.         android:layout_width="wrap_content" 
  16.         android:layout_height="wrap_content" 
  17.         android:text="Get an image" 
  18.         android:layout_gravity="center" 
  19.     />    
  20.       
  21.     <ImageView   
  22.         android:id="@+id/imview" 
  23.         android:layout_width="wrap_content" 
  24.         android:layout_height="wrap_content" 
  25.         android:layout_gravity="center" 
  26.      />    
  27.  </LinearLayout> 


Posted by 1010