EX08_07.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:4k
源码类别:

android开发

开发平台:

Java

  1. package irdc.EX08_07;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.net.HttpURLConnection;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.net.URLConnection;
  10. import android.app.Activity;
  11. import android.graphics.Bitmap;
  12. import android.graphics.BitmapFactory;
  13. import android.os.Bundle;
  14. import android.os.Handler;
  15. import android.os.Message;
  16. import android.view.View;
  17. import android.widget.Button;
  18. import android.widget.ImageView;
  19. import android.widget.TextView;
  20. public class EX08_07 extends Activity
  21. {
  22.   private TextView mTextView1;
  23.   private ImageView mImageView1;
  24.   private Button mButton1;
  25.   /* n秒更新一次 */
  26.   final int IntervalSec = 30;
  27.   java.text.SimpleDateFormat sdf;
  28.   public boolean run = true;;
  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.     sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  36.     mButton1 = (Button) findViewById(R.id.myButton1);
  37.     mTextView1 = (TextView) findViewById(R.id.myTextView1);
  38.     mImageView1 = (ImageView) findViewById(R.id.myImageView1);
  39.     mButton1.setOnClickListener(new Button.OnClickListener()
  40.     {
  41.       @Override
  42.       public void onClick(View arg0)
  43.       {
  44.         // TODO Auto-generated method stub
  45.         getYamWeatherPic();
  46.       }
  47.     });
  48.     /* 启动Thread */
  49.     new Thread(mTasks).start();
  50.   }
  51.   @Override
  52.   protected void onDestroy()
  53.   {
  54.     run = false;
  55.     super.onDestroy();
  56.   }
  57.   private void getYamWeatherPic()
  58.   {
  59.     try
  60.     {
  61.       String uriAPI = "http://www.dubblogs.cc:8751/"+
  62.                       "Android/Test/API/YamWeather/";
  63.       URL objURL = new URL(uriAPI);
  64.       /* 取得连接 */
  65.       URLConnection conn = objURL.openConnection();
  66.       conn.connect();
  67.       /* 将InputStream转成Reader */
  68.       BufferedReader in = new BufferedReader(new InputStreamReader(
  69.           conn.getInputStream()));
  70.       String inputLine;
  71.       /* 图文件路径 */
  72.       String uriPic = "";
  73.       /* 一行一行读取 */
  74.       while ((inputLine = in.readLine()) != null)
  75.       {
  76.         uriPic += inputLine;
  77.       }
  78.       objURL = new URL(uriPic);
  79.       /* 取得连接 */
  80.       HttpURLConnection conn2 = (HttpURLConnection) objURL
  81.           .openConnection();
  82.       conn2.connect();
  83.       /* 取得返回的InputStream */
  84.       InputStream is = conn2.getInputStream();
  85.       /* 将InputStream变成Bitmap */
  86.       Bitmap bm = BitmapFactory.decodeStream(is);
  87.       /* 关闭InputStream */
  88.       is.close();
  89.       mImageView1.setImageBitmap(bm);
  90.       mTextView1.setText(sdf.format(new java.util.Date()));
  91.     }
  92.     catch (MalformedURLException e)
  93.     {
  94.       // TODO Auto-generated catch block
  95.       mTextView1.setText("MalformedURLException:" + e.toString());
  96.       e.printStackTrace();
  97.     }
  98.     catch (IOException e)
  99.     {
  100.       // TODO Auto-generated catch block
  101.       mTextView1.setText("IOException:" + e.toString());
  102.       e.printStackTrace();
  103.     }
  104.   }
  105.   private Runnable mTasks = new Runnable()
  106.   {
  107.     public void run()
  108.     {
  109.       while (run)
  110.       {
  111.         try
  112.         {
  113.           Thread.sleep(IntervalSec * 1000);
  114.           /* 传送Message给Handler */
  115.           mHandler.sendMessage(mHandler.obtainMessage());
  116.         }
  117.         catch (InterruptedException e)
  118.         {
  119.           // TODO Auto-generated catch block
  120.           e.printStackTrace();
  121.         }
  122.       }
  123.     }
  124.   };
  125.   Handler mHandler = new Handler()
  126.   {
  127.     public void handleMessage(Message msg)
  128.     {
  129.       super.handleMessage(msg);
  130.       getYamWeatherPic();
  131.     }
  132.   };
  133. }