android读取网络资源,Android使用URL读取网络资源的方法

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界面布局代码如下:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/show"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:scaletype="fitcenter" />

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文件中授权访问互联网的权限:

demo程序运行效果界面截图如下:

d1a3256df5c4d3277cdf708f8cf3b6ce.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android Studio中显示MySQL中的用户名和手机号,您需要执行以下步骤: 1.创建一个Java类来连接到MySQL数据库。您可以使用JDBC驱动程序连接到MySQL。 2.编写一个SQL查询,以从数据库中检索用户名和手机号。 3.使用Java类中的查询来执行SQL查询。 4.将结果显示在Android Studio中的UI元素中,例如TextView。 以下是一个示例Java类,它连接到MySQL数据库并检索用户名和手机号: ``` import java.sql.*; public class MySQLConnector { public static void main(String[] args) { Connection conn = null; try { String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "password"; conn = DriverManager.getConnection(url, user, password); System.out.println("Connected to database"); String query = "SELECT username, phone FROM users"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String username = rs.getString("username"); String phone = rs.getString("phone"); System.out.println(username + "\t" + phone); } } catch (SQLException e) { System.out.println(e.getMessage()); } finally { try { if (conn != null) { conn.close(); System.out.println("Disconnected from database"); } } catch (SQLException e) { System.out.println(e.getMessage()); } } } } ``` 在上面的代码中,我们连接到名为“mydatabase”的MySQL数据库,并执行一个查询来检索所有用户的用户名和手机号。结果将打印到控制台中。 要将结果显示在Android Studio中,您可以修改上面的代码以返回结果并将其设置为TextView的文本。或者,您可以使用Android Volley库将查询结果作为JSON格式返回,并使用RecyclerView在应用程序中显示结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值