Android读取服务器图片的三种方法

发布时间 - 2026-01-11 01:32:38    点击率:

Android链接服务器获取图片在此提供三种方法,已通过验证,无误。

方法一:

public static Bitmap getImage(String path){ 
   
  try { 
    HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection(); 
    conn.setConnectTimeout(5000); 
    conn.setRequestMethod("GET"); 
    System.out.println("tdw1"); 
    if(conn.getResponseCode() == 200){ 
      InputStream inputStream = conn.getInputStream(); 
      Bitmap bitmap = BitmapFactory.decodeStream(inputStream);   
      return bitmap; 
    } 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return null; 
} 

在第一种方法中,从conn的输入流中获取数据将其转化为Bitmap型数据。

在功能代码中:

image.setImageBitmap(getImage("路径")); 

image为ImageView型控件。

第二种方法:

public static Bitmap getImage1(String path){ 
   
    HttpGet get = new HttpGet(path); 
    HttpClient client = new DefaultHttpClient(); 
    Bitmap pic = null; 
     try { 
      HttpResponse response = client.execute(get); 
      HttpEntity entity = response.getEntity(); 
      InputStream is = entity.getContent(); 
 
      pic = BitmapFactory.decodeStream(is);  // 关键是这句代 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return pic; 
} 

这个方法类似上面那个方法。在功能代码中设置是一样的

第三种方法:

public static Uri getImage2(String path,File cacheDir){ 
    File localFile = new File(cacheDir,MD5.getMD5(path)+path.substring(path.lastIndexOf("."))); 
    if(localFile.exists()){ 
      return Uri.fromFile(localFile); 
    }else 
    { 
      HttpURLConnection conn; 
      try { 
        conn = (HttpURLConnection) new URL(path).openConnection(); 
        conn.setConnectTimeout(5000); 
        conn.setRequestMethod("GET"); 
        if(conn.getResponseCode() == 200){ 
          System.out.println("tdw"); 
          FileOutputStream outputStream = new FileOutputStream(localFile); 
          InputStream inputStream = conn.getInputStream(); 
          byte[] buffer = new byte[1024]; 
          int length = 0; 
          while((length=inputStream.read(buffer))!=-1){ 
            outputStream.write(buffer, 0, length); 
          } 
          inputStream.close(); 
          outputStream.close(); 
          return Uri.fromFile(localFile); 
        } 
      } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
      } 
    } 
    return null;   
  } 

第三种方法,将从服务器获取的数据存入本地的文件中,如果文件已存在,则不需要从服务器重新获取数据。
在功能代码中:

image.setImageURI(getImage2(path, cache)); 

上面代码中设置图片为缓存设置,这样如果图片资源更新了,则需要重新命名文件的名字,这样才能够重新加载新图片。

cache = new File(Environment.getExternalStorageDirectory(),"cache"); 
if(!cache.exists()){ 
  cache.mkdirs(); 
} 

这里是设置 缓存图片的路径。
以上为三种方法。

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


# Android读取服务器图片  # Android读取服务器  # Android读取图片  # Android将图片上传到php服务器的实例代码  # Android 通过Base64上传图片到服务器实现实例  # Android 通过webservice上传多张图片到指定服务器详解  # Android选择图片或拍照图片上传到服务器  # Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法  # Android Socket服务端与客户端用字符串的方式互相传递图片的方法  # Android使用post方式上传图片到服务器的方法  # Android异步上传图片到PHP服务器  # Android从服务器获取图片的实例方法  # android传送照片到FTP服务器的实现代码  # 种方法  # 在此  # 不需要  # 将其  # 三种  # 转化为  # 这句  # 才能够  # 大家多多  # 则需  # 为三  # 加载  # 是一样的  # getInputStream  # bitmap  # inputStream  # getResponseCode 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  网站建设要注意的标准 促进网站用户好感度!  jQuery中的100个技巧汇总  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何快速搭建安全的FTP站点?  Laravel如何使用Sanctum进行API认证?(SPA实战)  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何在搬瓦工VPS快速搭建网站?  Thinkphp 中 distinct 的用法解析  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Python面向对象测试方法_mock解析【教程】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  大连网站制作公司哪家好一点,大连买房网站哪个好?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  长沙企业网站制作哪家好,长沙水业集团官方网站?  iOS UIView常见属性方法小结  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Python文件异常处理策略_健壮性说明【指导】  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  android nfc常用标签读取总结  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何续费美橙建站之星域名及服务?  如何制作一个表白网站视频,关于勇敢表白的小标题?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel如何自定义分页视图?(Pagination示例)  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  奇安信“盘古石”团队突破 iOS 26.1 提权  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  无锡营销型网站制作公司,无锡网选车牌流程?  如何获取PHP WAP自助建站系统源码?  如何在建站主机中优化服务器配置?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  高端企业智能建站程序:SEO优化与响应式模板定制开发  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在景安服务器上快速搭建个人网站?  node.js报错:Cannot find module 'ejs'的解决办法  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  高端网站建设与定制开发一站式解决方案 中企动力  Bootstrap整体框架之CSS12栅格系统  Linux网络带宽限制_tc配置实践解析【教程】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?