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

首頁 > 系統 > Android > 正文

Android使用URL讀取網絡資源的方法

2019-10-22 18:25:48
字體:
來源:轉載
供稿:網友

URL(Uniform Resource Locator)是統一資源定位器,它是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。就通常情況而言,URL可以由協議名、主機、端口和資源組成。

URL類提供了多個構造器用于創建URL對象,一旦獲得了URL對象之后,就可以調用如下常用方法來訪問該URL對應的資源了。
->String getFile():獲取此URL的資源名;
->String getHost():獲取此URL的主機名;
->String getPath():獲取此URL的路徑部分;
->String getPort():獲取此URL的端口號;
->String getProtocol():獲取此URL的協議名稱;
->String getQuery():獲取此URL的查詢字符串部分;
->URLConnection openConnection():返回一個URLConnection對象,它表示到URL所引用的遠程對象的連接;
InputStream openStream():打開與此URL的連接,并返回一個用于讀取該URL資源的InputStream。

URL對象中前幾個方法都非常容易理解,而該對象提供的openStream()可以讀取該URL資源的InputStream,通過該方法可以非常方便地讀取遠程資源。

下面的程序Demo示范了如何通過URL類讀取遠程資源。

layout/activity_main.xml界面布局代碼如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical">  <ImageView    android:id="@+id/show"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:scaleType="fitCenter" /></LinearLayout>

MainActivity.java邏輯代碼如下:

package com.fukaimei.urltest;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ImageView;import java.io.InputStream;import java.io.OutputStream;import java.net.URL;public class MainActivity extends AppCompatActivity {  ImageView show;  // 代表從網絡下載得到的圖片  Bitmap bitmap;  Handler handler = new Handler() {    @Override    public void handleMessage(Message msg) {      if (msg.what == 0x123) {        // 使用ImageView顯示該圖片        show.setImageBitmap(bitmap);      }    }  };  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    show = (ImageView) findViewById(R.id.show);    new Thread() {      @Override      public void run() {        try {          // 定義一個URL對象          URL url = new URL("http://172.xx.xxx.xxx:8080/fukaimei/android_vs_ios.jpg");          // 打開該URL對應的資源的輸入流          InputStream is = url.openStream();          // 從InputStream中解析出圖片          bitmap = BitmapFactory.decodeStream(is);          // 發送消息,通知UI組件的資源的輸入流          handler.sendEmptyMessage(0x123);          is.close();          // 再次打開URL對應的資源的輸入流          is = url.openStream();          // 打開手機文件對應的輸入流          OutputStream os = openFileOutput("android_vs_ios.jpg", MODE_PRIVATE);          byte[] buff = new byte[1024];          int hasRead = 0;          // 將URL對應的資源下載到本地          while ((hasRead = is.read(buff)) > 0) {            os.write(buff, 0, hasRead);          }          is.close();          os.close();        } catch (Exception e) {          e.printStackTrace();        }      }    }.start();  }}

上面的程序Demo兩次調用了URL對象的openStream()方法打開URL對應的資源的輸入流,程序第一次使用BitmapFactory的decodeStream(InputStream)方法來解析該輸入流中的圖片;第二次則使用IO將輸入流中的圖片下載到本地。
注意:由于該程序需要訪問互聯網,因此還需要在清單文件AndroidManifest.xml文件中授權訪問互聯網的權限:

<!-- 授權訪問互聯網-->  <uses-permission android:name="android.permission.INTERNET" />

Demo程序運行效果界面截圖如下:

Android,URL,網絡資源

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清镇市| 龙游县| 崇文区| 阿鲁科尔沁旗| 涡阳县| 沂南县| 南靖县| 辽阳县| 洛阳市| 远安县| 永春县| 讷河市| 南充市| 七台河市| 绵阳市| 铜川市| 玉林市| 鹤山市| 沁阳市| 黎川县| 监利县| 隆子县| 汉寿县| 佛学| 忻城县| 红桥区| 梅河口市| 萝北县| 龙海市| 兴城市| 阳城县| 通辽市| 泰和县| 安陆市| 桦甸市| 西吉县| 武冈市| 磐石市| 茌平县| 大名县| 宁国市|