Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android使用URL读取网络资源的方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

URL(Uniform resource Locator)是统一资源定位器,它是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。就@R_765_8013@,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://scheR_822_11845@as.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>


@H_355_0@mainActivity.java逻辑代码如下:

package com.fuKaiR_822_11845@ei.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/fuKaiR_822_11845@ei/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,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读取网络资源的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

大佬总结

以上是大佬教程为你收集整理的Android使用URL读取网络资源的方法全部内容,希望文章能够帮你解决Android使用URL读取网络资源的方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。