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这一强大的机器学习框架。在这个项目中,我们关注的是一个基于TensorFlow的非安全成人内容(Not Safe For Work,...
2. 商品展示:通过网络请求获取服务器的商品数据,动态渲染商品列表,支持图片预览、价格展示、库存状态等。 3. 购物车:实现添加、删除商品,调整数量,以及计算总价等功能。 4. 结算支付:用户选择购物车中的商品...
标题中的“网络游戏-一种用于网络搜索的无标注图片的排序方法”揭示了这个知识点的核心,即在网络游戏领域中,如何利用未标记的图片进行有效的网络搜索排序。这涉及到图像处理、机器学习和搜索引擎优化等多个技术...
运用在安卓开发上提供本地(相机,相册,剪裁,文件),缓存,网络三方图片的快速开发库 适用设备: Android:15~24 添加依赖: Step1.Add the Jetpack repository to your project build file: allprojects { ...
### Python网络应用开发—模拟登录知识点详解 #### 一、实验背景与目标 本实验旨在通过实际操作加深学生对Python网络应用开发的理解,特别是聚焦于模拟登录这一实用技能的学习。模拟登录是指通过程序来模拟用户的...
如果这些图片不是原创或者没有明确的免费使用许可,可能需要获得版权所有者的授权才能在商业项目中使用。 8. **自定义开发**:对于开发者来说,学习如何创建自己的loading-gif可以提升个人技能。这涉及学习图形设计...
在Android开发中,图片加载和缓存是必不可少的一部分,尤其在网络图片的处理上。这个压缩包文件包含了关于Android中常见的网络图片加载库及其缓存机制的示例代码,旨在帮助开发者理解和实现高效的图片加载策略。以下...
在Android应用开发中,有效地管理和显示网络图片是常见的需求,特别是在资源有限的移动设备上。`Android-FastImageSize`库就是为了满足这一需求而设计的,它允许开发者在不完全下载图片的情况下,快速获取到网络图片...
- **观察者模式**:定义对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - **工厂模式**:提供创建对象的接口,使代码更加灵活,隔离了类的实例化过程。 ...
通过向图片URL发送GET请求,我们可以得到一个包含图片二进制数据的响应。然后,可以使用`io`库的`BytesIO`对象和`PIL`(Python Imaging Library)或其分支`Pillow`来保存这些二进制数据为本地图片文件。 此外,图片...
"oc-plugin-qiniuAdapter-master" 这个文件名表明我们获得的是该插件的源代码仓库主分支,通常包含了完整的项目结构、配置文件、控制器、模型、视图、路由以及其他必要的组件。"master" 表示这是主分支,代表了项目...
在肤色检测中,通常会使用机器学习算法,如支持向量机(SVM)、决策树或神经网络,对大量的肤色样本进行训练,得到一个能够区分肤色与非肤色像素的模型。这个训练数据集可能是由不同光照、角度和肤色的人脸或身体...
### Android手把手开发一个图片浏览器 #### Android平台简介与历史背景 Android平台是目前全球最广泛使用的移动操作系统之一。它最初是由安迪·鲁宾(Andy Rubin)在2003年创立的一个小型科技公司开发的,专注于为...
在iOS开发中,使用Swift实现瀑布流网络图片加载是一项重要技能。这种布局方式的特点是,图片以多列的形式排列,每列的高度不固定,新行的起始位置会根据上一行中最后一张图片的位置来确定,从而形成一种类似瀑布下落...
《.NET企业级项目开发》网络资源链接文档主要提供了大量的ASP.NET(MVC)相关的学习和开发资源,涵盖了从官方文档、开源社区到技术论坛、教程网站等多个方面,为开发者提供了一个全面的学习和交流平台。以下是对这些...
在iOS开发中,创建一个功能完善的相册和图片浏览器是一项常见的任务。这个“ios-相册,图片浏览器.zip”文件包含了一个实现此类功能的示例项目,名为"xiangceDemo"。以下将详细解析该项目可能涉及的关键知识点。 1....
源码是通过调用八图片平台的 API,进行设计开发的。用此源码搭建的网站,用户资金直接进入你自己的支付接口。 8tupian 图片加密平台简介: 8tupian 图片加密平台是一个可以对图片进行加密的网络平台。 将原始...
在iOS开发中,有时我们需要将图片数据转换成字符串格式以便在网络上传输,这时Base64编码就显得尤为重要。Base64是一种用64个字符来表示任意二进制数据的方法,它将二进制数据转化为可打印的ASCII字符,使得图片可以...
在这个特定的项目中,我们关注的是“微信小程序--瀑布流展示效果(通用潮流网络直播、图片展示)”。瀑布流布局,也称为Pinterest布局,是一种常见的网页设计模式,尤其适用于内容丰富的应用,如图片分享、网络直播...
在iOS应用开发中,我们经常需要实现类似微信朋友圈的图片浏览功能,这要求用户能够方便地查看、滑动和交互一组图片。这个项目名为“swift-iOS类似微信朋友圈样式的图片浏览器”,它基于Swift编程语言,旨在提供一个...