`

网络开发-获得图片

阅读更多

1:工具类

package cn.itcast.utils;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class StreamTool {

	/**
	 * 从输入流中获取数据
	 * @param inStream 输入流
	 * @return
	 * @throws Exception
	 */
	public static byte[] readInputStream(InputStream inStream) throws Exception{
		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len = 0;
		while( (len=inStream.read(buffer)) != -1 ){
			outStream.write(buffer, 0, len);
		}
		inStream.close();
		return outStream.toByteArray();
	}
}

 

 

2:业务类

package cn.itcast.service;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import cn.itcast.utils.StreamTool;

public class ImageService {
 
 public static byte[] getImage(String path) throws Exception {
  URL url = new URL("http://i3.itc.cn/20100707/76c_0969b700_d5b4_41cd_8243_9b486be92cc4_0.jpg");
  HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  conn.setRequestMethod("GET");
  conn.setConnectTimeout(5 * 1000);
  InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
  return StreamTool.readInputStream(inStream);//得到图片的二进制数据
 }

}

 

3:activate

package cn.itcast.image;

import cn.itcast.service.ImageService;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

public class ImageShowActivity extends Activity {
	private static final String TAG = "ImageShowActivity";
    private EditText pathText;
    private ImageView imageView;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        pathText = (EditText) this.findViewById(R.id.urlpath);
        imageView = (ImageView) this.findViewById(R.id.imageView);
        Button button = (Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				String path = pathText.getText().toString();
				try {
					byte[] data = ImageService.getImage(path);
					Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);//生成位图
					imageView.setImageBitmap(bitmap);//显示图片					
				} catch (Exception e) {
					Toast.makeText(ImageShowActivity.this, R.string.error, 1).show();
					Log.e(TAG, e.toString());
				}
			}
		});
    }
}

 

分享到:
评论

相关推荐

    iOS开发-图片离线鉴黄 基于TensorFlow nsfw oc版.zip

    在iOS开发中,图片离线鉴黄是一项关键的技术,它涉及到人工智能和深度学习领域,特别是利用TensorFlow这一强大的机器学习框架。在这个项目中,我们关注的是一个基于TensorFlow的非安全成人内容(Not Safe For Work,...

    微信小程序开发-移动端商城案例源码.zip

    2. 商品展示:通过网络请求获取服务器的商品数据,动态渲染商品列表,支持图片预览、价格展示、库存状态等。 3. 购物车:实现添加、删除商品,调整数量,以及计算总价等功能。 4. 结算支付:用户选择购物车中的商品...

    网络游戏-一种用于网络搜索的无标注图片的排序方法.zip

    标题中的“网络游戏-一种用于网络搜索的无标注图片的排序方法”揭示了这个知识点的核心,即在网络游戏领域中,如何利用未标记的图片进行有效的网络搜索排序。这涉及到图像处理、机器学习和搜索引擎优化等多个技术...

    Android代码-图片快速开发库

    运用在安卓开发上提供本地(相机,相册,剪裁,文件),缓存,网络三方图片的快速开发库 适用设备: Android:15~24 添加依赖: Step1.Add the Jetpack repository to your project build file: allprojects { ...

    python网络应用开发-模拟登录.docx

    ### Python网络应用开发—模拟登录知识点详解 #### 一、实验背景与目标 本实验旨在通过实际操作加深学生对Python网络应用开发的理解,特别是聚焦于模拟登录这一实用技能的学习。模拟登录是指通过程序来模拟用户的...

    166个等待图片-loading-gif图片

    如果这些图片不是原创或者没有明确的免费使用许可,可能需要获得版权所有者的授权才能在商业项目中使用。 8. **自定义开发**:对于开发者来说,学习如何创建自己的loading-gif可以提升个人技能。这涉及学习图形设计...

    安卓图片加载缓存相关-android项目中经常会接触到加载网络图片的情况这里向大家展示几种最为常见访问网络图片的几种方式.rar

    在Android开发中,图片加载和缓存是必不可少的一部分,尤其在网络图片的处理上。这个压缩包文件包含了关于Android中常见的网络图片加载库及其缓存机制的示例代码,旨在帮助开发者理解和实现高效的图片加载策略。以下...

    Android-FastImageSize是一个不需要完全下载就可以快速获得网络图片宽高尺寸信息的androidlib

    在Android应用开发中,有效地管理和显示网络图片是常见的需求,特别是在资源有限的移动设备上。`Android-FastImageSize`库就是为了满足这一需求而设计的,它允许开发者在不完全下载图片的情况下,快速获取到网络图片...

    Android应用开发-6年-张苗1

    - **观察者模式**:定义对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - **工厂模式**:提供创建对象的接口,使代码更加灵活,隔离了类的实例化过程。 ...

    2-2图片爬虫获取照片

    通过向图片URL发送GET请求,我们可以得到一个包含图片二进制数据的响应。然后,可以使用`io`库的`BytesIO`对象和`PIL`(Python Imaging Library)或其分支`Pillow`来保存这些二进制数据为本地图片文件。 此外,图片...

    Laravel开发-oc-plugin-qiniuadapter

    "oc-plugin-qiniuAdapter-master" 这个文件名表明我们获得的是该插件的源代码仓库主分支,通常包含了完整的项目结构、配置文件、控制器、模型、视图、路由以及其他必要的组件。"master" 表示这是主分支,代表了项目...

    matlab开发-SkinDetector

    在肤色检测中,通常会使用机器学习算法,如支持向量机(SVM)、决策树或神经网络,对大量的肤色样本进行训练,得到一个能够区分肤色与非肤色像素的模型。这个训练数据集可能是由不同光照、角度和肤色的人脸或身体...

    android手把手开发一个图片浏览器

    ### Android手把手开发一个图片浏览器 #### Android平台简介与历史背景 Android平台是目前全球最广泛使用的移动操作系统之一。它最初是由安迪·鲁宾(Andy Rubin)在2003年创立的一个小型科技公司开发的,专注于为...

    swift-瀑布流网络图片瀑布流

    在iOS开发中,使用Swift实现瀑布流网络图片加载是一项重要技能。这种布局方式的特点是,图片以多列的形式排列,每列的高度不固定,新行的起始位置会根据上一行中最后一张图片的位置来确定,从而形成一种类似瀑布下落...

    .NET企业级项目开发-1期 网络资源链接.doc

    《.NET企业级项目开发》网络资源链接文档主要提供了大量的ASP.NET(MVC)相关的学习和开发资源,涵盖了从官方文档、开源社区到技术论坛、教程网站等多个方面,为开发者提供了一个全面的学习和交流平台。以下是对这些...

    ios-相册,图片浏览器.zip

    在iOS开发中,创建一个功能完善的相册和图片浏览器是一项常见的任务。这个“ios-相册,图片浏览器.zip”文件包含了一个实现此类功能的示例项目,名为"xiangceDemo"。以下将详细解析该项目可能涉及的关键知识点。 1....

    8tupian图片加密平台v2.7 对图片进行加密的网络平台+包含三种模式上传图片+可二次开发修改

    源码是通过调用八图片平台的 API,进行设计开发的。用此源码搭建的网站,用户资金直接进入你自己的支付接口。 8tupian 图片加密平台简介: 8tupian 图片加密平台是一个可以对图片进行加密的网络平台。 将原始...

    IOS-图片编码-Base64-例子

    在iOS开发中,有时我们需要将图片数据转换成字符串格式以便在网络上传输,这时Base64编码就显得尤为重要。Base64是一种用64个字符来表示任意二进制数据的方法,它将二进制数据转化为可打印的ASCII字符,使得图片可以...

    微信小程序--瀑布流展示效果(通用潮流网络直播、图片展示)

    在这个特定的项目中,我们关注的是“微信小程序--瀑布流展示效果(通用潮流网络直播、图片展示)”。瀑布流布局,也称为Pinterest布局,是一种常见的网页设计模式,尤其适用于内容丰富的应用,如图片分享、网络直播...

    swift-iOS类似微信朋友圈样式的图片浏览器

    在iOS应用开发中,我们经常需要实现类似微信朋友圈的图片浏览功能,这要求用户能够方便地查看、滑动和交互一组图片。这个项目名为“swift-iOS类似微信朋友圈样式的图片浏览器”,它基于Swift编程语言,旨在提供一个...

Global site tag (gtag.js) - Google Analytics