???????¦Ë??: ??????? > Android > android??? >
|??????:???|????|????|???|????

android????????????????????????

???:2012-10-29 ???:??????? ???: ??

1.???????????

?????????

  1. <?xml version="1.0" encoding="utf-8"?>
     
  2. <LinearLayout
     
  3.   xmlns:android="http://schemas.android.com/apk/res/android"
     
  4.   android:orientation="vertical"
     
  5.   android:layout_width="fill_parent"
     
  6.   android:layout_height="fill_parent">
     
  7.   
     
  8.     <ImageView android:src="@drawable/icon"
     
  9.             android:layout_width="wrap_content"
     
  10.             android:id="@+id/imgPic"
     
  11.             android:layout_gravity="center|center_vertical"
     
  12.             android:layout_height="fill_parent">
     
  13.     </ImageView>
     
  14.         
     
  15. </LinearLayout>
???????

java???

  1. public class DownloadImage extends Activity {
     
  2.         private ImageView imgPic;
     

  3.  
  4.         @Override
     
  5.         protected void onCreate(Bundle savedInstanceState) {
     
  6.                 super.onCreate(savedInstanceState);
     
  7.                 setContentView(R.layout.download_image);
     
  8.                 imgPic = (ImageView) findViewById(R.id.imgPic);
     
  9.                 String url = "http://ww1.sinaimg.cn/bmiddle/6834c769jw1djjf4p3p9rj.jpg";
     
  10.                 loadRmoteImage(url);
     
  11.         }
     

  12.  
  13.         /**
     
  14.          * @param imgUrl
     
  15.          *            ??????????URL
     
  16.          *            
     
  17.          *            ?????????
     
  18.          */
     
  19.         private void loadRmoteImage(String imgUrl) {
     
  20.                 URL fileURL = null;
     
  21.                 Bitmap bitmap = null;
     
  22.                 try {
     
  23.                         fileURL = new URL(imgUrl);
     
  24.                 } catch (MalformedURLException err) {
     
  25.                         err.printStackTrace();
     
  26.                 }
     
  27.                 try {
     
  28.                         HttpURLConnection conn = (HttpURLConnection) fileURL
     
  29.                                         .openConnection();
     
  30.                         conn.setDoInput(true);
     
  31.                         conn.connect();
     
  32.                         InputStream is = conn.getInputStream();
     
  33.                         int length = (int) conn.getContentLength();
     
  34.                         if (length != -1) {
     
  35.                                 byte[] imgData = new byte[length];
     
  36.                                 byte[] buffer = new byte[512];
     
  37.                                 int readLen = 0;
     
  38.                                 int destPos = 0;
     
  39.                                 while ((readLen = is.read(buffer)) > 0) {
     
  40.                                         System.arraycopy(buffer, 0, imgData, destPos, readLen);
     
  41.                                         destPos += readLen;
     
  42.                                 }
     
  43.                                 bitmap = BitmapFactory.decodeByteArray(imgData, 0,
     
  44.                                                 imgData.length);
     
  45.                         }
     
  46.                 } catch (IOException e) {
     
  47.                         e.printStackTrace();
     
  48.                 }
     
  49.                 imgPic.setImageBitmap(bitmap);
     
  50.         }
???????

2.??????????????

???????????????????????????????????????????????????????????????????????????¡Â???

  1. public class DownloadImage extends Activity {
     
  2.         private ImageView imgPic;        
     
  3.         private ProgressBar progressBar;
     
  4.         private int totalSize=0;
     
  5.         private int size=0;
     
  6.         private Handler mHandler;
     
  7.         String url = "http://ww1.sinaimg.cn/bmiddle/6834c769jw1djjf4p3p9rj.jpg";
     
  8.         private Bitmap bitmap=null;
     
  9.         @Override
     
  10.         protected void onCreate(Bundle savedInstanceState) {
     
  11.                 super.onCreate(savedInstanceState);
     
  12.                 setContentView(R.layout.download_image);
     
  13.                 imgPic = (ImageView) findViewById(R.id.imgPic);
     
  14.                
     
  15.                 progressBar = (ProgressBar) findViewById(R.id.progressBar);
     
  16.                 progressBar.setProgress(getProgressInt(progressBar.getMax()));
     
  17.                 mHandler = new Handler() {
     
  18.                         public void handleMessage(Message msg) {                                
     
  19.                                 progressBar.setProgress(getProgressInt(progressBar.getMax()));               
     
  20.                                 if(bitmap!=null){
     
  21.                                         imgPic.setImageBitmap(bitmap);
     
  22.                                 }
     
  23.                         }
     
  24.                 };
     
  25.                 new Thread(){        
     
  26.                         public void run(){
     
  27.                                 loadRmoteImage(url);
     
  28.                         }
     
  29.                 }.start();
     
  30.         }
     

  31.  
  32.         /**
     
  33.          * @param imgUrl
     
  34.          *            ??????????URL
     
  35.          *            
     
  36.          *            ?????????
     
  37.          */
     
  38.         private void loadRmoteImage(String imgUrl) {
     
  39.                 URL fileURL = null;               
     
  40.                 try {
     
  41.                         fileURL = new URL(imgUrl);
     
  42.                 } catch (MalformedURLException err) {
     
  43.                         err.printStackTrace();
     
  44.                 }
     
  45.                 try {
     
  46.                         HttpURLConnection conn = (HttpURLConnection) fileURL
     
  47.                                         .openConnection();
     
  48.                         conn.setDoInput(true);
     
  49.                         conn.connect();
     
  50.                         InputStream is = conn.getInputStream();
     
  51.                         int length = (int) conn.getContentLength();
     
  52.                         totalSize=length;
     
  53.                         if (length != -1) {
     
  54.                                 byte[] imgData = new byte[length];
     
  55.                                 byte[] buffer = new byte[512];
     
  56.                                 int readLen = 0;
     
  57.                                 int destPos = 0;
     
  58.                                 while ((readLen = is.read(buffer)) > 0) {                                       
     
  59.                                         System.arraycopy(buffer, 0, imgData, destPos, readLen);
     
  60.                                         destPos += readLen;
     
  61.                                         size=destPos;
     
  62.                                         mHandler.sendEmptyMessage(1);
     
  63.                                         Thread.sleep(100);
     
  64.                                 }
     
  65.                                 bitmap = BitmapFactory.decodeByteArray(imgData, 0,
     
  66.                                                 imgData.length);
     
  67.                                 mHandler.sendEmptyMessage(1);
     
  68.                         }
     
  69.                 } catch (IOException e) {
     
  70.                         e.printStackTrace();
     
  71.                 } catch (InterruptedException e) {                        
     
  72.                         e.printStackTrace();
     
  73.                 }
     
  74.                
     
  75.         }
     
  76.         private  int getProgressInt(int max) {
     
  77.                 int result = (totalSize > 0) ? (int) (size * max * 1.0 / totalSize) : 0;
     
  78.                 return result;
     
  79.         }        
     
  80. }
???????

????????????????????Bitmap???????????????????????byte[]????????bitmap????????????InputStream????bitmap??
? ????????byte[]????????bitmap
onCreate{

  1.    byte[] data = getImage(filePath);         
     
  2.              if(data!=null){         
     
  3.                  bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);// bitmap         
     
  4.                  imageView.setImageBitmap(bitmap);// display image         
     
  5.              }else{         
     
  6.                  Toast.makeText(AndroidTest2_3_3.this, "Image error!", 1).show();         
     
  7.              }   
???????

}

  1.    public byte[] getImage(String path) throws Exception{      
     
  2.          URL url = new URL(path);      
     
  3.          HttpURLConnection conn = (HttpURLConnection) url.openConnection();      
     
  4.          conn.setConnectTimeout(5 * 1000);      
     
  5.          conn.setRequestMethod("GET");      
     
  6.          InputStream inStream = conn.getInputStream();      
     
  7.          if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){      
     
  8.              return readStream(inStream);      
     
  9.          }      
     
  10.          return null;      
     
  11.      }      
  1.   public static byte[] readStream(InputStream inStream) throws Exception{      
     
  2.          ByteArrayOutputStream outStream = new ByteArrayOutputStream();      
     
  3.          byte[] buffer = new byte[1024];      
     
  4.          int len = 0;      
     
  5.          while( (len=inStream.read(buffer)) != -1){      
     
  6.             outStream.write(buffer, 0, len);      
     
  7.          }      
     
  8.          outStream.close();      
     
  9.          inStream.close();      
     
  10.          return outStream.toByteArray();      
     
  11.     }     

?????????InputStream
onCreate{

  1.   bitmap = BitmapFactory.decodeStream(getImageStream(filePath));   
     
  2.             if (bitmap != null) {   
     
  3.                  imageView.setImageBitmap(bitmap);// display image   
     
  4.              }   
     
  5.              //********************************************************************/   
     
  6.              Log.d(TAG, "set image ...");   
     
  7.          } catch (Exception e) {      
     
  8.              Toast.makeText(AndroidTest2_3_3.this,"Newwork error!", 1).show();      
     
  9.              e.printStackTrace();      
     
  10.          }   
     
  11. }
  1. public InputStream getImageStream(String path) throws Exception{      
     
  2.          URL url = new URL(path);      
     
  3.          HttpURLConnection conn = (HttpURLConnection) url.openConnection();      
     
  4.          conn.setConnectTimeout(5 * 1000);      
     
  5.          conn.setRequestMethod("GET");   
     
  6.          if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){      
     
  7.              return conn.getInputStream();         
     
  8.          }      
     
  9.          return null;   
     
  10.     }

???????

  1. public void saveFile(Bitmap bm, String fileName) throws IOException {   
     
  2.         File dirFile = new File(ALBUM_PATH);   
     
  3.          if(!dirFile.exists()){   
     
  4.              dirFile.mkdir();   
     
  5.          }   
     
  6.          File myCaptureFile = new File(ALBUM_PATH + fileName);   
     
  7.          BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));   
     
  8.          bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);   
     
  9.          bos.flush();   
     
  10.          bos.close();   
     
  11.     }   
?????????|???????????|??????¦Ã???|??XML???