亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-29 07:20:40 來源:腳本之家 閱讀:159 作者:_彼岸雨敲窗_ 欄目:移動開發

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讀取網絡資源的方法

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泽县| 安西县| 洛宁县| 浠水县| 崇州市| 朝阳市| 九台市| 张家港市| 桂阳县| 汕尾市| 寻乌县| 湖州市| 新兴县| 神池县| 沽源县| 鄱阳县| 金山区| 屏山县| 和顺县| 鄯善县| 呼伦贝尔市| 常德市| 板桥市| 东乌珠穆沁旗| 基隆市| 江山市| 莱芜市| 东方市| 会宁县| 内丘县| 定襄县| 木里| 穆棱市| 安溪县| 苍溪县| 谷城县| 许昌县| 沛县| 杭锦旗| 仪征市| 敖汉旗|