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(); } 

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

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

更多相关文章

  1. android播放本地工程里的音乐和视频的方法
  2. ActionBar的一些使用方法
  3. android制作圆角图片和图片倒影
  4. android 获取本地图片或音乐
  5. H5调用原生APP的js方法
  6. 使用Git下载Google Android源代码
  7. Android屏蔽EditText软键盘的方法
  8. Android中用代码设置ImageView的src和background

随机推荐

  1. 初学Andriod之跑马灯属性设置
  2. 最全的 Android 生命周期图
  3. android 输入法出现挤压屏幕
  4. Android手势下拉抽屉效果
  5. Android--取出SDcard卡上指定后缀名的文
  6. Android连续点击两次返回键退出App
  7. Android SDK 2.1 install
  8. Android磨砂效果
  9. Android初学笔记1
  10. android常用开源库分享