国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android利用消息機制獲取網絡圖片

2019-12-12 03:15:01
字體:
來源:轉載
供稿:網友

在前面都寫到用AsyncTask來獲取網絡中的圖片。其實利用消息機制也能獲取網絡中的圖片,而且本人感覺用消息機制還是挺簡單的。

消息機制的圖解:

  

下面就用看代碼來理解上面的圖片。

布局:activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"   android:layout_width="match_parent"   android:layout_height="match_parent"   tools:context="cn.edu.huse.handle.MainActivity" >    <ImageView     android:layout_width="match_parent"     android:layout_height="match_parent"     android:id="@+id/iv_image" />   <Button      android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:onClick="getImage"     android:text="獲取網絡圖片"     android:layout_gravity="bottom|center"     android:layout_marginBottom="20dp"/>  </FrameLayout> 

MainActivity.java

package cn.edu.huse.handle;  import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL;  import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.ImageView; import android.widget.Toast;  /**  * @author Lenovo  *  */ public class MainActivity extends Activity {    protected static final int LOAD_SUCCESS = 0;    private static final int LOAD_ERROR = 1;    private ImageView iv_image;      private Handler mHandler = new Handler(){     public void handleMessage(Message msg) {       switch (msg.what) {       case LOAD_SUCCESS:   //加載圖片成功         Bitmap bitmap = (Bitmap) msg.obj; //獲取消息里面的數據         iv_image.setImageBitmap(bitmap);         break;       case LOAD_ERROR:  //加載失敗         Toast.makeText(MainActivity.this, "圖片加載失敗", 0).show();         break;       }     };   };    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);          iv_image = (ImageView) findViewById(R.id.iv_image);   }      public void getImage(View v){     new Thread(new Runnable() {              @Override       public void run() {         String path = "http://p2.so.qhimgs1.com/bdr/_240_/t01666725c7200ad5ae.jpg";                  try {           //1、獲取URL           URL url = new URL(path);           //2、得到連接對象           HttpURLConnection conn = (HttpURLConnection) url.openConnection();           //設置連接時長           conn.setConnectTimeout(5000);           //設置請求方式           conn.setRequestMethod("GET");           //判斷是否響應成功           if(conn.getResponseCode() == 200){             //3、獲取輸入流             InputStream inputStream = conn.getInputStream();             //4、獲得圖片資源Bitmap             Bitmap bitmap = BitmapFactory.decodeStream(inputStream);             //消息對象             Message msg = new Message();             msg.what = LOAD_SUCCESS; //唯一標識             msg.obj = bitmap;   //消失里面寫在的數據             mHandler.sendMessage(msg); //發送消失給Handle           }else{             alertUses();           }                    } catch (Exception e) {           e.printStackTrace();           alertUses();         }       }     }).start();   }      /**    * 土司提醒用戶,圖片加載失敗    */   public void alertUses(){     mHandler.sendEmptyMessage(LOAD_ERROR);   } } 

添加權限:


運行結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 忻城县| 洪雅县| 麻栗坡县| 晋江市| 两当县| 玛多县| 科尔| 四会市| 定襄县| 麻江县| 安义县| 玉门市| 西城区| 清丰县| 西丰县| 阿拉善右旗| 托克逊县| 永福县| 从化市| 安溪县| 元氏县| 泸西县| 牡丹江市| 遂昌县| 石棉县| 勃利县| 揭东县| 阳城县| 沁阳市| 宁明县| 定结县| 永年县| 鹿泉市| 城市| 社会| 双柏县| 葫芦岛市| 平邑县| 密云县| 东莞市| 黔西县|