`
yanghaoli
  • 浏览: 284341 次
社区版块
存档分类
最新评论

android读取远程图片案例

 
阅读更多

关键代码:
Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
imageview.setImageBitmap(bitmap);

注意访问网络权限:<uses-permission android:name="android.permission.INTERNET"/>

完整测试代码如下:

 1 package caicai.cn.netimag;
 2 
 3  import java.io.ByteArrayOutputStream;
 4  import java.io.InputStream;
 5  import java.net.HttpURLConnection;
 6  import java.net.URL;
 7 
 8  public class imageserver {
 9  public static byte[] getimage(String path) throws Exception{ //连接远程网址
10  URL url=new URL(path);
11  HttpURLConnection conn=(HttpURLConnection) url.openConnection();
12  conn.setConnectTimeout(5000);
13  conn.setRequestMethod("GET");
14  if(conn.getResponseCode()==200){
15  InputStream instream=conn.getInputStream();
16  return read(instream); 
17  }
18  return null;
19  }
20 
21  private static byte[] read(InputStream instream) throws Exception{ //  读取数据流,返回字节数据流
22  ByteArrayOutputStream outstream=new ByteArrayOutputStream(); 
23  byte[] buffer=new byte[1024];
24  while( (instream.read(buffer))!=-1){
25  outstream.write(buffer); 
26  } 
27  instream.close();
28  return outstream.toByteArray();
29  }
30  }
imageserver.java
 1 package caicai.cn.netimag;
 2 
 3  import android.app.Activity;
 4  import android.graphics.Bitmap;
 5  import android.graphics.BitmapFactory;
 6  import android.os.Bundle;
 7  import android.view.View;
 8  import android.widget.ImageView;
 9  import android.widget.Toast;
10 
11  public class NetimageActivity extends Activity {
12 
13  public ImageView imageview;
14  public void onCreate(Bundle savedInstanceState) {
15  super.onCreate(savedInstanceState);
16  setContentView(R.layout.main);
17  imageview=(ImageView) findViewById(R.id.imageview);
18  }
19  public void submit(View v){
20  String path="http://192.168.0.117/testxml/bottom.png";
21  try{
22    byte[] data=imageserver.getimage(path);
23    Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);   //生成图片工厂
24  imageview.setImageBitmap(bitmap);  //显示图片
25  }catch(Exception e){
26 
27  Toast.makeText(getApplicationContext(), "出错了", 1).show();
28  }
29  }
30  }
NetimageActivity.java
 1 <?xml version="1.0" encoding="utf-8"?>
 2  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3  android:layout_width="fill_parent"
 4  android:layout_height="fill_parent"
 5  android:orientation="vertical" >
 6 
 7  <Button 
 8  android:layout_width="fill_parent"
 9  android:layout_height="wrap_content"
10  android:text="获取网络图片"
11  android:onClick="submit"/>
12  <ImageView 
13  android:layout_width="fill_parent"
14  android:layout_height="wrap_content"
15  android:id="@+id/imageview"
16  android:src="@drawable/ic_launcher"
17  />
18 
19  </LinearLayout>
main.xml
 1 <?xml version="1.0" encoding="utf-8"?>
 2  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3  package="caicai.cn.netimag"
 4  android:versionCode="1"
 5  android:versionName="1.0" >
 6 
 7  <uses-sdk android:minSdkVersion="8" />
 8  <uses-permission android:name="android.permission.INTERNET"/>
 9 
10  <application
11  android:icon="@drawable/ic_launcher"
12  android:label="@string/app_name" >
13  <activity
14  android:label="@string/app_name"
15  android:name=".NetimageActivity" >
16  <intent-filter >
17  <action android:name="android.intent.action.MAIN" />
18 
19  <category android:name="android.intent.category.LAUNCHER" />
20  </intent-filter>
21  </activity>
22  </application>
23 
24  </manifest>
AndroidManifest.xml

 

1
1
分享到:
评论

相关推荐

    Android Studio实现简单的网络视频播放器,优秀课设,小白必看!

    通过gson解析网络视频的api,获取每个视频的url、点赞量和评论数。获取到数据源后,我们再创建适配器,给列表设置下适配器,加载网络数据,从而实现了网络视频的播放。非常适合小白进行模仿学习。

    android手机安全卫士

    1、通过0权限上传下载数据,重启手机等案例,深入讲解android沙箱,安全机制和权限模型。 2、通过分析恶意代码的提权漏洞,讲解如何维护系统的安全。 3、通过linux键盘驱动案例的讲解,分析盗号木马的原理及其实现...

    Android典型技术模块开发详解

    第四篇 Android应用开发案例 第13章 Ksoap2 13.1 SOAP协议 13.1.1 请求 13.1.2 响应 13.2 WSDL介绍 13.3 Ksoap2应用——天气预报 13.4 Ksoap2参数类型 13.4.1 CXF框架的Web Service 13.4.2 Android端开发 13.5 Base...

    android开发实例大全_王东华

    本书以Android应用程序的开发为主题,并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。本书的讲述由浅入深,实例全面并典型,几乎囊括了所有和Android应用相关的项目。全书分为...

    基于物联网开发平台,结合农业物联网和视频监控技术,实现一个物联网农业的应用案例,实现一到两项传感数据获取、监控或者控制

    案例说明:基于物联网开发平台,结合农业物联网和视频监控技术,实现一个物联网农业的应用案例,实现一到两项传感数据获取、监控或者控制。完成一个可执行、演示的系统。 技能集:IAR单片机编程,嵌入式linux QT...

    安卓Android多商家便利店销售购物商城APP+源代码+文档说明+数据库.zip

    安卓Android多商家便利店销售购物商城APP设计毕业源码案例设计 开发环境: Myclipse/Eclipse/Idea(服务器端) + Eclipse或Android Studio(手机客户端) + mysql数据库 系统客户端和服务器端架构技术: 界面层,业务逻辑...

    Android的多媒体管理库Glide的基本使用示例

    Glide 是一个android平台上的快速和高效的开源的多媒体资源管理库, 提供 多媒体文件的压缩,内存和磁盘缓存, 资源池的接口。...Glide最简单的使用案例就是从远程服务器或者本地文件系统加载图片,把它们放在磁盘与内存

    智能网联感知识别系统综合实训,基于云端汽车自动感应灯(智慧路灯)笔记

    基于华为云智慧路灯案例(物联网)整理的笔记,包含从华为云的部署到实现Android Studio获取到华为云的数据和实现远程开关灯,急用VScode STM32l431rct6的代码与Android的代码可以联找我拿,后续有时间在上传代码

    农业物联网技术平台开发.zip

    案例说明:基于物联网开发平台,结合农业物联网和视频监控技术,实现一个物联网农业的应用案例,实现一到两项传感数据获取、监控或者控制。完成一个可执行、演示的系统。 技能集:IAR单片机编程,嵌入式linux QT...

    农业物联网和视频监控技术

    案例说明:基于物联网开发平台,结合农业物联网和视频监控技术,实现一个物联网农业的应用案例,实现一到两项传感数据获取、监控或者控制。完成一个可执行、演示的系统。 技能集:IAR单片机编程,嵌入式linux QT...

    Java虚拟机

    1.4.6 Apache Harmony Google Android Dalvik VM 1.4.7 Microsoft JVM及其他 1.5 展望Java技术的未来 1.5.1 模块化 1.5.2 混合语言 1.5.3 多核并行 1.5.4 进一步丰富语法 1.5.5 64位虚拟机 1.6 实战:自己...

    Git权威指南PDF完整版

    11.4.7 获取历史版本/ 156 第12章 改变历史/ 157 12.1 悔棋/ 157 12.2 多步悔棋/ 159 12.3 回到未来/ 161 12.3.1 时间旅行一/ 162 12.3.2 时间旅行二/ 167 12.3.3 时间旅行三/ 171 12.4 丢弃历史/ 174 12.5 反转提交...

Global site tag (gtag.js) - Google Analytics