在前面都寫到用AsyncTask來獲取網(wǎng)絡中的圖片。其實利用消息機制也能獲取網(wǎng)絡中的圖片,而且本人感覺用消息機制還是挺簡單的。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的裕安網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
消息機制的圖解:
下面就用看代碼來理解上面的圖片。
布局: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="獲取網(wǎng)絡圖片" 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; //獲取消息里面的數(shù)據(jù) 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; //消失里面寫在的數(shù)據(jù) mHandler.sendMessage(msg); //發(fā)送消失給Handle }else{ alertUses(); } } catch (Exception e) { e.printStackTrace(); alertUses(); } } }).start(); } /** * 土司提醒用戶,圖片加載失敗 */ public void alertUses(){ mHandler.sendEmptyMessage(LOAD_ERROR); } }
添加權限:
運行結果:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
新聞名稱:android利用消息機制獲取網(wǎng)絡圖片
分享URL:http://www.rwnh.cn/article32/ghdjpc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、云服務器、商城網(wǎng)站、品牌網(wǎng)站建設、搜索引擎優(yōu)化、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)