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


相关推荐: 如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  用v-html解决Vue.js渲染中html标签不被解析的问题  如何正确选择百度移动适配建站域名?  EditPlus中的正则表达式实战(6)  Python进程池调度策略_任务分发说明【指导】  北京企业网站设计制作公司,北京铁路集团官方网站?  韩国服务器如何优化跨境访问实现高效连接?  如何在腾讯云服务器上快速搭建个人网站?  linux top下的 minerd 木马清除方法  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  如何快速搭建高效WAP手机网站吸引移动用户?  魔方云NAT建站如何实现端口转发?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  网站图片在线制作软件,怎么在图片上做链接?  iOS发送验证码倒计时应用  如何在万网自助建站平台快速创建网站?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Laravel如何处理CORS跨域请求?(配置示例)  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Swift开发中switch语句值绑定模式  制作电商网页,电商供应链怎么做?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  进行网站优化必须要坚持的四大原则  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  网易LOFTER官网链接 老福特网页版登录地址  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  详解阿里云nginx服务器多站点的配置  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  如何快速辨别茅台真假?关键步骤解析  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  js代码实现下拉菜单【推荐】  图册素材网站设计制作软件,图册的导出方式有几种?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  简历在线制作网站免费版,如何创建个人简历?  android nfc常用标签读取总结  简单实现jsp分页  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  怎样使用JSON进行数据交换_它有什么限制  香港网站服务器数量如何影响SEO优化效果?  Android okhttputils现在进度显示实例代码  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel如何生成URL和重定向?(路由助手函数)  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  原生JS获取元素集合的子元素宽度实例  JavaScript实现Fly Bird小游戏  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  如何在Tomcat中配置并部署网站项目?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?