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

首頁 > 系統 > Android > 正文

Android圖片加載案例分享

2019-12-12 02:49:07
字體:
來源:轉載
供稿:網友

HttpURLConnection和HttpClient都可以訪問網絡,前者是Java的標準類,后者是Apache的一個開源項目,兩者使用起來效果一樣,但后者更為簡單。
 以下是針對前者完成的一個實例:
首先寫好布局文件:

<LinearLayout 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"  android:orientation="vertical"  tools:context=".MainActivity" >  <ImageView    android:id="@+id/iv"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:layout_weight="1" />  <EditText    android:id="@+id/et_path"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:hint="請輸入圖片路徑"    android:src="@drawable/    android:maxLines="1" />  <Button  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:onClick="click"    android:text="瀏覽" /></LinearLayout>


界面交互

package cn.edu.bzu.imageviewdemo;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class MainActivity extends AppCompatActivity {  protected static final int CHANGE_UI = 1;  protected static final int ERROR = 2;  private EditText et_path;  private ImageView iv;  // 主線程創建消息處理器  private Handler handler = new Handler(){    public void handleMessage(android.os.Message msg) {      if(msg.what == CHANGE_UI){        Bitmap bitmap = (Bitmap) msg.obj;        iv.setImageBitmap(bitmap);      }else if(msg.what == ERROR){        Toast.makeText(MainActivity.this, "顯示圖片錯誤", 0).show();      }    };  };  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    et_path = (EditText) findViewById(R.id.et_path);    iv = (ImageView) findViewById(R.id.iv);  }  public void click(View view) {    final String path = et_path.getText().toString().trim();    if (TextUtils.isEmpty(path)) {      Toast.makeText(this, "圖片路徑不能為空", Toast.LENGTH_SHORT).show();    } else {      //子線程請求網絡,Android4.0以后訪問網絡不能放在主線程中      new Thread() {        public void run() {          // 連接服務器 get 請求 獲取圖片.          try {            URL url = new URL(path);    //創建URL對象            // 根據url 發送 http的請求.            HttpURLConnection conn = (HttpURLConnection) url                .openConnection();            // 設置請求的方式            conn.setRequestMethod("GET");            //設置超時時間            conn.setConnectTimeout(5000);            // 得到服務器返回的響應碼            int code = conn.getResponseCode();            //請求網絡成功后返回碼是200            if (code == 200) {              //獲取輸入流              InputStream is = conn.getInputStream();              //將流轉換成Bitmap對象              Bitmap bitmap = BitmapFactory.decodeStream(is);              //iv.setImageBitmap(bitmap);              //TODO: 告訴主線程一個消息:幫我更改界面。內容:bitmap              Message msg = new Message();              msg.what = CHANGE_UI;              msg.obj = bitmap;              handler.sendMessage(msg);            } else {              //返回碼不是200 請求服務器失敗              Message msg = new Message();              msg.what = ERROR;              handler.sendMessage(msg);            }          } catch (Exception e) {            e.printStackTrace();            Message msg = new Message();            msg.what = ERROR;            handler.sendMessage(msg);          }        };      }.start();    }  }}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扶沟县| 会东县| 阿坝| 威海市| 庆城县| 南宫市| 蛟河市| 隆林| 西峡县| 新竹市| 威海市| 开原市| 昌吉市| 靖江市| 河池市| 乌兰浩特市| 美姑县| 望都县| 东港市| 玛多县| 太白县| 五华县| 惠安县| 利辛县| 花垣县| 富川| 黎川县| 竹溪县| 台东县| 太和县| 江北区| 吴旗县| 思茅市| 土默特右旗| 大宁县| 梨树县| 黄骅市| 孟村| 聂拉木县| 天峨县| 蒙自县|