android开发-通过HttpURLConnection获取网络内容,Bitmap把二进制格式的图片转为位图

原创 2013年08月09日 15:44:24

android开发-通过HttpURLConnection获取网络内容,

Bitmap把二进制格式的图片转为位图

布局:用ImageView显示图片

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <EditText
        android:id="@+id/editTest_urlpath"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
      android:text="http://pic3.nipic.com/20090630/2987337_202447057_2.jpg">
    </EditText>
    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="获取图片"/>
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>

权限:

要从网上获取到图片,或者其他内容,必须先弄个internet权限

<uses-permission android:name="android.permission.INTERNET"/>

Activity:测试类,把获取到的二进制图片转为位图并显示出来

@Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_image_view);
      
       editText_urlpath = (EditText) this.findViewById(R.id.editTest_urlpath);
       button = (Button) this.findViewById(R.id.button);
       imgView = (ImageView) this.findViewById(R.id.imageView);
      
       button.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
              byte[] data = ImageViewService.getImage();
              //把二进制图片转成位图
              Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
              imgView.setImageBitmap(bitmap);
           }
       });
    }

Service:提供从网上获取图片的方法(只是测试随便,什么参数得自己去提取了)

public class ImageViewService {
    public static byte[] getImage() {
       byte[] data = null;
       try {
           //建立URL
           URL url = new URL("http://pic3.nipic.com/20090630/2987337_202447057_2.jpg");
           HttpURLConnection conn = (HttpURLConnection) url.openConnection();
           conn.setRequestMethod("GET");
           conn.setReadTimeout(5000);
          
           InputStream input = conn.getInputStream();
           data = Util.readInputStream(input);
           input.close();
          
           System.out.println("下载完毕!");
       } catch (MalformedURLException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       return data;
    }
}

Util:工具类

public class Util {
    public static byte[] readInputStream(InputStream input) {
       ByteArrayOutputStream output = new ByteArrayOutputStream();
       try {
           byte[] buffer = new byte[1024];
           int len = 0;
           while((len = input.read(buffer)) != -1) {
              output.write(buffer, 0, len);
           }
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       return output.toByteArray();
    }
}



版权声明:本文为博主原创文章,转载请注明原地址。

在android中使用HTTPClient以post方法发送二进制文件

首先,在propotities-> Java build path -> Libraries中add external jars中引入httpclient-4.2.5.jar和httpmime-4.2...
  • xiatian6032
  • xiatian6032
  • 2015年10月25日 19:43
  • 1117

Android中如何根据图片url路径来获取网络图片

1、根据图片的URL路径来获取网络图片,核心代码如下: public static Bitmap getBitmap(String path) throws IOException{     UR...
  • violet19890610
  • violet19890610
  • 2013年12月26日 15:41
  • 25931

Android从网络上获取图片的两种方式

1,获得图片的bitmap格式 参见以前写的,这种方式是使用Url连接,位图工厂直接从连接解析 package cn.com.hh.http; import java.io.IOException;...
  • tuke_tuke
  • tuke_tuke
  • 2016年05月24日 11:58
  • 744

android从网络获取图片直接存为bitmap

最直接的方法就是使用第三方插件,一行代码即可: Bitmap bitmap = ImageLoader.getInstance().loadImageSync(img_url)); 如...
  • u014737138
  • u014737138
  • 2016年03月09日 15:43
  • 333

Android程序如何实现从网络中获取一张图片

首先,我们要知道图片这种文件,不能以我们印象中那些基本数据类型来定义或是以这些类型从网络中获取图片。 所以我们需要用到二进制(计算机的世界就是一个二进制的世界啊。。。)数据类型。...
  • u013761665
  • u013761665
  • 2014年05月12日 22:08
  • 2583

Android 照片文件转化为而二进制流

/** * 照片转byte二进制 * @param imagepath 需要转byte的照片路径 * @return 已经转成的byte * @throws Exception */ pub...
  • qq_32521313
  • qq_32521313
  • 2017年04月01日 09:20
  • 3878

ImageView获取网络图片

注意加网络权限 package com.example.test_edittext; import java.io.InputStream; import java.net.HttpURLConn...
  • djun100
  • djun100
  • 2013年08月26日 10:02
  • 3729

Handler机制通过位图工厂类获取网络上的图片

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • a_sid
  • a_sid
  • 2016年10月20日 15:41
  • 113

Http服务器如何在HTTP response中传送二进制图片

要想知道如何传送这些二进制,先来点二进制文件的背景知识    —文件魔数 magic number: 操作系统的文件,其起始的几个字节的内容是固定的。根据这几个字节的内容就可以确定文件类型,因此...
  • darkjune
  • darkjune
  • 2015年02月12日 16:02
  • 2489

Android:网络图片Url 转 Bitmap

注意:该方法必须要在子线程中调用,因为涉及网络请求 public Bitmap getBitmap(String url) { Bitmap bm = null; ...
  • HMYANG314
  • HMYANG314
  • 2015年02月09日 15:37
  • 14781
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android开发-通过HttpURLConnection获取网络内容,Bitmap把二进制格式的图片转为位图
举报原因:
原因补充:

(最多只允许输入30个字)